标签: browser-cache

如何请求浏览器始终更新(也称永不缓存)某些页面元素,例如CSS工作表?

我在开发我的页面时发现了一个问题,这一直困扰着我:虽然Firefox(我的通用"开发"浏览器)总是在服务器上更改时更新CSS和图像,但Internet Explorer并不总是这样做.通常,我需要在IE中刷新页面,然后才会向服务器询问更新版本的内容.

据我了解,浏览器不应该至少检查每个请求的所有服务器端对象的时间戳,然后根据需要更新它们的客户端?有没有办法我可以...不强迫,但是......"鼓励"浏览器为某些项目执行此操作?

我在这里遇到的主要问题是我的页面上有一些JavaScript依赖于以某种方式初始化CSS,反之亦然.当一个更新而另一个不更新时(在IE中非常常见,当两者都在他们自己的外部页面中时)它会导致混淆,并且偶尔会在页面上出现泼溅效果.我可以自己动手做"刷页"舞蹈,但是当我在网站上进行脚本狂欢时,我不想鼓励我的用户"刷新页面".

任何建议将不胜感激.页面本身更新顺利(它是PHP),所以最糟糕的情况我可以将CSS和JavaScript吐出到页面本身,但这真的很难看,当然我试图不惜一切代价避免它.

html css browser-cache

4
推荐指数
1
解决办法
1440
查看次数

谷歌Chrome缓存问题

我之前已经问过这个问题但没有得到答案所以我正在添加更多信息.我使用spring 3 mvc和spring security进行身份验证/授权,构建了一个对js有点沉重的在线服务.HTTPS是任何交互的要求,因此所有请求都是这样.服务器设置包含一个Apache服务器后面的一个Tomcat 7应用服务器(可能在将来添加更多),该服务器充当mod_proxy,mod_cache和mod_deflate的反向代理.为所有可缓存资源(js,css,images)设置缓存标头:

Cache-Control:max-age=604800, must-revalidate, public
Run Code Online (Sandbox Code Playgroud)

上面的标题在Firefox和IE浏览器中都有所需的结果(至少分别是我测试过的3+和8+版本),即两个浏览器都相应地缓存.js和.css文件,除非用户刷新页面以便浏览器将附加到请求标头a Cache-Control:max-age=0并将获得304回复,或强制刷新,Cache-Control:no-cache以便它将重新获取资源.另一方面,谷歌浏览器的行为有所不同,虽然它通过将jsessionid附加到用于在缓存中存储文件的密钥来缓存文件,将它绑定到分配给用户的特定会话.这导致每次用户登录/注销或关闭浏览器时都从服务器重新获取文件(Spring安全性具有临时会话和不同的记忆我).当用户访问登录屏幕并且在登录后将其重定向到主站点时,用于登录屏幕以及主站点的主要css甚至被提取两次(因为现在chrome将文件放入缓存中没有sessionid绑定到它).

google-chrome browser-cache

4
推荐指数
1
解决办法
6324
查看次数

DNS查找时间和Windows DNS缓存

对于DNS解析测试目的...我想禁用Windows 7中的所有DNS缓存

我仍然看到"DNS Lookup : 0 ms"同一域的连续请求.

我已经尝试了显而易见的"ipconfig /flushdns",并完全停止了服务:

net stop dnscache
Run Code Online (Sandbox Code Playgroud)

此命令也会产生相同的效果:

 net stop "DNS Client"
Run Code Online (Sandbox Code Playgroud)

而且我也知道浏览器会在很短的时间内缓存DNS查找.所以我刷新他们的缓存,关闭打开浏览器,或者我在不同的浏览器(Firefox,chrome,chrome incognito,IE)中打开相同的域以绕过DNS缓存.

因此,第一次,DNS查找时间可以是25毫秒(使用8.8.8.8),但随后下一个DNS查找缓存在系统中的某个位置,时间为0毫秒.如果我等待大约3到5分钟重复请求,那么只会消失.

我可以做什么来强制系统每次都解析DNS,即使在同一个DNS请求之间是5秒?

是否与Windows保持活动或某种类型的TCP连接重用有关?它不应该,因为我重新打开浏览器.但是我没有想法,

你能否解释一下这个问题?

谢谢

dns http fiddler browser-cache windows-7

4
推荐指数
1
解决办法
4352
查看次数

Sitecore 8:利用浏览器缓存

对于我的网站,Google PageSpeed Insights 建议更改某些可缓存资源的过期值,例如 .css、.js、.svg、google api、siteimprove。为上述文件设置过期值是否可行?如果是,那么需要什么配置?

caching sitecore browser-cache sitecore8

4
推荐指数
1
解决办法
1107
查看次数

我在 HTML 中放了什么来确保用户获得我的页面的最新版本,而不是旧版本?

我有一个从 CDN 提供的大部分静态 HTML 网站(加上一些 AJAX 到服务器),并且确实希望用户的浏览器缓存所有内容,直到我更新任何文件然后我希望用户的浏览器获得新版本。

对于我网站上的所有类型的静态文件(HTML、JS、CSS、图像等),我该如何实现?(HTML 或其他地方的设置)。显然我可以告诉 CDN 让它的缓存过期,所以它是我正在考虑的客户端。

谢谢。

html javascript cache-control browser-cache

4
推荐指数
1
解决办法
2321
查看次数

如何使用 Google 云存储管理缓存

我在 Google Cloud 存储中托管了一个网站。它只有静态文件。一切都很好。我更改了几页并将这些文件上传回云存储。它已成功上传。但是这些更改在通过浏览器访问时不会立即反映出来。它在一段时间后起作用。我找不到反射后的时间模式。

任何人都可以知道如何在浏览器中立即反映更改。

我已经清除了所有缓存和 cookie。我已经使用 control+F5 刷新页面,但它不起作用。我已经测试了 Firefox 和 Chrome。两者的行为相同。

我复制了下面的标题内容,

请求头

用户代理:Mozilla的/ 5.0(Windows NT的6.1; WOW64; RV:53.0)壁虎/ 20100101火狐/ 53.0接受:text / html的,应用/ XHTML + xml的,应用/ XML; Q = 0.9,/ Q = 0.8接受-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Connection: keep-alive Upgrade-Insecure-Requests: 1 Pragma: no-cache Cache-Control: no-cache

响应头

X-GUploader-UPLOADID:AEnB2UpLL0HQXX5kBesLWzBDywY7Wyry1yA7WjPEnQT0YtH-Jg4PHl5kBHAGjqiATWSZ1-AJKX9IsrPbzP4lUZvtF2IAvbqxhA到期:星期一,2017年5月8日16点59分五十秒GMT时间:星期一,2017年5月8日15:59:50 GMT的Last-Modified:星期一,2017年5月8日15:53: 53 GMT 电子标签:“af73f0909ae13b8cc6298d8a58640046”x-goog-generation:1494258833242504 x-goog-metageneration:1 x-goog-stored-content-encoding:身份x-googmetalength-stored-goog-stored-goog-content-encoding:1494258833242504 -reserved-file-mtime: 1494258821 Content-Type: text/html Content-Language: en x-goog-hash: crc32c=fOshiQ==, md5=r3PwkJrhO4zGKY2KWGQARg== x-goog-storage-class: 区域:R接受-字节内容长度:24795 服务器:上传服务器缓存控制:公共,最大年龄 = 3600 年龄:2128

caching website-hosting browser-cache google-cloud-storage

4
推荐指数
1
解决办法
982
查看次数

在 Pythonanywhere 上配置 nginx 服务器

我正在尝试“利用浏览器缓存”来提高网站速度。webapp 托管在 pythonanywhere 上,我想我需要配置 nginx.conf 文件以包含:

location ~* \.(css|js|gif|jpe?g|png)$ {
  expires 168h;
  add_header Pragma public;
  add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
Run Code Online (Sandbox Code Playgroud)

(从这里开始:如何在 django 中利用浏览器缓存

但是我在任何地方都找不到 conf 文件。它不在 /etc/nginx、/usr/local/etc /usr/etc ...

这可以在 pythonanywhere 上完成吗?

nginx browser-cache pythonanywhere

4
推荐指数
1
解决办法
598
查看次数

具有 SSL 证书缓存的 Service Worker

我们在 Google Cloud 服务器上托管了许多站点。

我们最近为服务器添加了更新的 SSL 证书;之后我们所有的站点都加载了新证书,除了具有 service-worker 设置的站点。该站点似乎仍在加载旧证书(目前仍然有效 - 明天到期)。

看起来它与缓存有关 - 清除浏览器缓存后,还会为此站点加载新证书。

当证书过期时,这对客户来说会是一个问题吗?当浏览器(Chrome、Firefox 等)在缓存中找到过期的证书时,它们会自动检查服务器以获取新证书,还是会显示 SSL 警告页面(如https://expired.badssl.com/)?

有没有办法确保客户端/浏览器从服务器加载更新的证书?

ssl caching ssl-certificate browser-cache service-worker

4
推荐指数
1
解决办法
904
查看次数

如何使用 Service Worker 或缓存对象通过 JavaScript 设置缓存过期时间

我可以使用删除方法删除缓存数据。但我想使用过期时间自动删除缓存数据。例如,它应该在 6 小时内被删除。

caches.delete(cacheName).then(function(boolean) {
  // your cache is now deleted
});
Run Code Online (Sandbox Code Playgroud)

javascript caching cache-control browser-cache service-worker

4
推荐指数
1
解决办法
8132
查看次数

Service Worker 列出缓存中的所有 url 并传递给另一个函数

我在我的项目中使用工作箱,但问题不是工作箱特有的。

谁能告诉我如何从特定缓存中检索所有网址的列表并将其返回给回调函数。我正在尝试向用户显示所有缓存网址的列表以及删除它们的选项。但我无法填充/显示所有缓存网址的列表。

我正在做的是:

function queryCache(){
    var url = [];
    caches.open('mycache').then(function (cache){
        cache.keys().then(function(keys){
            return new Promise(function(resolve, reject) {
                keys.forEach(function (request, index, array) {
                    cache.match(request).then(function (response){
                        url.push(response.url);
                    })
                })
                resolve();
            });
        }).then(function(){
            console.log(url); // lists all urls in console as array
            cacheList(url);
        });
    })
}

function cacheList(Items)
{   for(var i = 0; i < Items.length; i++){
        console.log('Items: '+Items[i]); //never reaches
    }
    console.log(Items.length); // always show 0
}
Run Code Online (Sandbox Code Playgroud)

当我从控制台调用queryCache()时,正确调用了cacheList(Items),但问题是,Items始终是一个空数组,并且其长度始终为0。

可能我没有正确使用 Promise 解析。请帮忙谢谢

javascript browser-cache service-worker workbox

4
推荐指数
1
解决办法
1332
查看次数