标签: browser-cache

如果源站 Web 服务器将响应标头中的 expires 值设置为相对较早之前经过的时间,会发生什么情况?

如果源站 Web 服务器将响应标头中的 expires 值设置为相对较久以前传递的时间,会发生什么情况。

例如,考虑当前时间是格林威治标准时间 2013 年 1 月 25 日星期五,并且过期标头设置为 -->

到期:1994 年 12 月 1 日星期四 16:00:00 GMT

客户端将如何响应上述实例?

任何帮助,将不胜感激

caching http cache-control browser-cache http-headers

6
推荐指数
1
解决办法
7369
查看次数

htaccess for Leverage浏览器缓存不起作用

我在利用浏览器缓存时遇到问题.我创建了这个.htaccess文件,并在我的服务器上使用它,但它似乎没有工作,我从这里复制了这个" http://www.samaxes.com/2011/05/improving-web-performance-with- apache-and-htaccess / ".我最喜欢犯一个基本错误,所以任何帮助都会很好.这里有一些细节.我正在研究一个子域,我们称之为"sub"和主域"example".所以我希望http://sub.example.com/中的所有内容都能用于htaccess文件.在我的服务器上,我将.htaccess文件放在sub的主目录中,例如,它与主要目录分开.

我正在运行一个apache2服务器,同时启用了mod_headers和mod_expires.

干杯.

<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/xml text/css text/plain
AddOutputFilterByType DEFLATE image/svg+xml application/xhtml+xml application/xml
AddOutputFilterByType DEFLATE application/rdf+xml application/rss+xml application/atom+xml
AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript application/json
AddOutputFilterByType DEFLATE application/x-font-ttf application/x-font-otf
AddOutputFilterByType DEFLATE font/truetype font/opentype
</ifModule>
<ifModule mod_expires.c>
 ExpiresActive On
 ExpiresDefault "access plus 5 seconds"
 ExpiresByType image/x-icon "access plus 2592000 seconds"
 ExpiresByType image/jpeg "access plus 2592000 seconds"
 ExpiresByType image/png "access plus 2592000 seconds"
 ExpiresByType image/gif "access plus 2592000 seconds"
 ExpiresByType application/x-shockwave-flash "access plus 2592000 …
Run Code Online (Sandbox Code Playgroud)

.htaccess caching http browser-cache http-headers

6
推荐指数
1
解决办法
2万
查看次数

如何使用无限循环恢复JSFiddle中未保存的JS更改?

我不小心在JSFiddle中创建了一个无限循环,因此页面没有响应.我有一段时间没有保存,所以我不想重新加载并丢失更改.我正在使用Chrome,但已经过了二十分钟,Chrome还没有抓住循环并让我有机会结束剧本.

我确实打开了开发人员控制台,但响应速度不是很快.Chrome是否在硬盘上的某个地方有我的代码的本地副本?

javascript infinite-loop browser-cache jsfiddle

6
推荐指数
1
解决办法
1414
查看次数

如何清除HTML数据?

我们可以使用这样的查询选择器清除CSS样式表缓存:

<link rel="stylesheet" type="text/css" href="stylesheet.css?v=1.0" />

每当我们更改样式表并需要浏览器清除我们的CSS样式表时,我们可以更改版本号,如1.1,1.2等.

清除HTML数据有什么类似的东西吗?


我有这样的HTML标记:

<img src="picturename.jpg" /><!--picture of a **man**--->
Run Code Online (Sandbox Code Playgroud)

后来我需要更改图片,但文件名相同:

<img src="picturename.jpg" /><!--picture of a **woman**--->
Run Code Online (Sandbox Code Playgroud)

我删除了男人的照片,上传了女人的照片.但是当我在浏览器中查看时,它显示的是缓存图片,即使在非常干净的刷新(Ctrl + F5)之后也是一个人的图片,并且还清除了浏览器具有的设置.

更新


每次清除缓存都不是一个好主意我开始知道所以我想通过jquery实现这个以下概念:

  1. 首先将图像src设置picturename.jpgpicturename.jpg?v=1
  2. 将号码存储在本地存储或cookie中.但我很困惑使用cookie,就像用户删除cookie一样,然后存储的变量也将被删除,因此将其存储在本地存储中会更好.
  3. 检索本地存储变量编号并检查是否超出了全局变量编号,然后只更改图片src编号,如下所示:

var cnum = 1; // author will change this number when needed
$(document).ready(function(){
var ccnum; // store in local storage then increase the number if cnum is greater than ccnum
//now change the src as of image
Run Code Online (Sandbox Code Playgroud)

我需要更改所有图库图像的src,$('#mygallery img')实际上我有数百张图片需要更改一段时间后需要相同的文件名.

我该怎么办?

html jquery browser-cache

6
推荐指数
1
解决办法
179
查看次数

使用Cookie标头使Varnish忽略请求

清漆默认行为是永远不会查找包含Cookie标头的请求.换句话说,Cookie永远不会缓存包含标头的请求.我需要覆盖此行为以忽略带有Cookie标头的请求.

考虑我的应用程序中的下一个用户行为:

  1. 用户进入应用程序主页(/),页面应该被缓存,后端返回public缓存控件,一切都很好,页面被Varnish缓存.
  2. 用户导航到/not-cacheable不可缓存的自定义页面(),后端返回private缓存控件.还会Set-Cookie在响应中返回标头.Varnish忽略了这个请求,用户最终得到了一个cookie.到现在为止还挺好.
  3. 用户导航回主页(/),记住,已经缓存了.问题是,用户请求现在带有Cookie标题.这会导致Varnish忽略该请求并委托给后端.

删除Cookie 将不起作用,因为当用户返回/not-cacheable路线时,他将看不到他的个性化页面,因为Cookie标题已被条带化.相反,后端返回一个新生成的会话,其中包含一个新的id Set-Cookie.

此外,Cookie在Varnish中查找每个请求都会导致每个请求(有关方法或后端响应)被缓存.

如果有一种方法告诉Varnish只是忽略Cookie标头,这样我就可以通过让后端决定请求是否可以缓存来缓存具有该标头的请求.

有任何想法吗?

cookies http varnish browser-cache varnish-vcl

6
推荐指数
1
解决办法
2703
查看次数

浏览器不会从服务器请求最新的PDF

我在Windows Server IIS Web服务器上有一个PDF,用户在其中使用IE8 / 9/10使用HTTP调用来请求它,像这样...

http: // mydomain.com / somefolder / myFile.pdf
Run Code Online (Sandbox Code Playgroud)

第一次点击将下载文件没有问题。 问题:如果管理员更新了PDF,并且用户返回以重新加载它,则IE仅显示本地缓存的版本,而不会从服务器请求新版本。

我已经确认,根据第二个请求,IE8,IE9和IE10根本不会为PDF文件调用服务器。甚至没有条件请求(例如,if-updated-since)。使用Fiddler和WireShark确认了这一点。但是我从来没有用Max-Age或任何东西来明确设置缓存。我没有为该文件夹设置缓存。我不希望将缓存设置为“立即过期”。它也针对Word DOC。

Internet Explorer中是否存在一个错误,使其无论何时都始终使用静态文档(例如PDF,DOC)的本地副本?

这些想法不起作用:

  1. F5CTRL+ F5SHIFT+F5

  2. 使用DELETE HISTORY按钮删除浏览器历史记录并缓存。为什么这实际上不能清除所有缓存,这超出了我的范围。除密码外,我已选择删除所有内容。

我唯一了解的方法是:

  1. 手动删除本地PDF,因为“删除历史记录”按钮不会删除本地版本。但是大多数用户并不那么精明。

  2. 使用Firefox,但这不是公司认可的浏览器。不要让我开始。

  3. 将服务器缓存设置为“立即过期”,但是pdf包含在带有网页的文件夹中,我不希望这样做。我想将缓存最长期限用于CSS,脚本,图像等其他内容。

  4. 在末尾添加一个伪查询字符串(如?id = 1),该方法有效,但是业务线中有100多个文档,每个文档中的链接都必须更新。

  5. 使用FIDDLER“清除缓存”按钮或CCleaner,但我公司中的大多数用户(7万名员工)不是开发人员,也没有该软件。

是否有一个真正的解决方案,以使IE像我想的那样工作?

pdf internet-explorer caching browser-cache expires-header

6
推荐指数
1
解决办法
7234
查看次数

更新缓存的模板

我利用templateUrl它,效果很棒!

app.directive('myDir', function() {
    return {
        templateUrl: 'partials/directives/template.html'
    };
};
Run Code Online (Sandbox Code Playgroud)

但是......当我对这些模板进行更改时,它不会更新.在开发过程中,这不是一个大问题,因为我知道更新了什么,可以手动清除缓存.

但我无法清除所有用户的缓存.有没有办法做到这一点?喜欢使用CACHE-CONTROL metatag或类似的东西?

caching browser-cache angularjs angularjs-directive angular-template

6
推荐指数
1
解决办法
1745
查看次数

Etag和Expires标头有什么区别?

我知道这个问题有好几次了.但我仍然不清楚这个概念.在SO中阅读了很多博客和答案后,我得到的是,

Expiry headers are used when you don’t even want client (and proxies/caches) to make a request to  
the server. In ETAG, the client will check with the server for the update, but in expiry 
headers, the client will know, when to expire the file and check for an update, till then it
(browsers and proxies/caches) won’t bother server for checking the update.
Run Code Online (Sandbox Code Playgroud)

所以基本上它说如果我们使用expires/max-age标头,它甚至不会检查服务器是否有更新的文件.所以我想在本地进行测试.

所以我创建了简单的html文件,包括2个js文件和1个图像文件.在IIS中,我已将图像文件夹的Expires标头设置为2天.因此,根据我的理解,在从服务器获取图像文件一次后,对于下一个请求,它不应该向服务器发送请求以检查图像文件是否被修改.

但我得到的是每次刷新页面时,我看到发送到服务器的请求,服务器返回304 not modified状态.但根据我阅读的规格/博客它不应该向服务器发送请求.

有人请解释一下.

在此输入图像描述

etag http cache-control http-caching browser-cache

6
推荐指数
1
解决办法
1640
查看次数

如何利用node.js中的浏览器缓存?

我的网站在node.js服务器上运行,当我在谷歌页面洞察工具上检查我的网站时,它显示我利用浏览器缓存.我一直在网上搜索这个,但没有运气.如果有人知道如何利用node.js中的浏览器缓存,请告诉我.

browser-cache node.js

6
推荐指数
1
解决办法
3925
查看次数

Internet Explorer中formdata.get()方法的替代方法是什么?

var formData = new FormData();
formData.append('username', 'Chris');
formData.append('username', 'Bob');
formData.get('username');
Run Code Online (Sandbox Code Playgroud)

getInternet Explorer中不支持该方法.那么我们如何才能username在Internet Explorer中进行检索?

javascript jquery internet-explorer form-data browser-cache

6
推荐指数
1
解决办法
4065
查看次数