我有一个可以访问网页的WebView。当我离线时是否可以访问例如以前下载的图像?如果可能的话,我该怎么做?
提前致谢。
我的问题很简短(希望很容易解决!):如何完全禁用使用vaadin实现的Web服务中的浏览器缓存?
我想完全禁用缓存,因为当我尝试执行一些PDF流并将其显示在我的浏览器中时遇到问题。
例如,我在这里阅读了有关我的问题的解决方案:
他们谈论将一些标头添加到Web应用程序以禁用浏览器缓存。但是,如何将它们添加到Vaadin应用程序中?
简短的代码片段将非常受欢迎(而且很有帮助!)
再次感谢您的所有回答,并认为您正在与我分享。
是否有一个元标记或我可以使用的东西告诉浏览器在特定日期之前不使用缓存.
例如
<meta "only use cache if cache is AFTER 4/4/2013">
如果缓存是旧的,它需要下载所有新的Javascript,CSS,图像等.
我对网站进行了很多更新,然后搞砸了仍然有缓存的人(你不能指望他们知道按ctrl + f5或ctrl + r).
我正在尝试从另一个域下载静态文件.在我的.htaccess文件中,它位于根目录中:
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "Accept, If-Modified-Since, Origin"
Header set Access-Control-Allow-Methods "GET, OPTIONS"
Run Code Online (Sandbox Code Playgroud)
这是请求 - 响应周期,浏览器下载资源两次:
GET /file HTTP/1.1
Host: www.example.com
Accept: application/json
Origin: http://www.mydomain.com
HTTP/1.1 200 OK
Date: Sat, 07 Sep 2013 21:01:35 GMT
Server: Apache
Last-Modified: Sat, 07 Sep 2013 20:14:45 GMT
Content-Length: 2
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Accept, If-Modified-Since, Origin
Access-Control-Allow-Methods: GET, OPTIONS
Content-Type: application/json
[]
GET /file HTTP/1.1
Host: www.example.com
Cache-Control: max-age=0
Accept: application/json
Origin: http://www.mydomain.com
If-Modified-Since: Sat, 07 Sep 2013 20:14:45 GMT
HTTP/1.1 …Run Code Online (Sandbox Code Playgroud) 因此,为了确保不提供陈旧资产,人们经常使用以下内容:
example.com/css/styles.css?v=1
Run Code Online (Sandbox Code Playgroud)
要么
example.com/css/styles-v1.css
Run Code Online (Sandbox Code Playgroud)
像jQuery这样的库使用类似的策略来请求JSONP资源(使用查询字符串方法).同样,分析服务使用URL中的缓存清除跟踪像素.
我的问题是,是否有人有任何关于缓存代理(或其他机制)的百分比可能忽略查询字符串的真实数据,使URL路径选项更可取?
我听说移动互联网提供商和企业环境有严格的缓存规则,但我没有看到任何真实的数据.
我正在看几个CSS和Javascript文件的Chromes Developer工具中的瀑布.
刷新页面时,正如预期的那样,从浏览器缓存加载了几个文件.大部分时间都需要1ms才能加载.然而,一些文件,每次刷新似乎都是相同的罪犯,需要花费更长的时间.在400毫秒到800毫秒之间.
Chromes网络选项卡中的瀑布时间线显示在某些情况下,此时间花在TTFB(第一个字节的时间)上.这对我没有任何意义,如果从浏览器缓存中获取它应该从硬盘驱动器而不是服务器获取它,为什么有TTFB?
对于其他文件或有时在不同的刷新,我看到时间被归咎于内容下载时间.再次,来自缓存这应该是非常即时的,但我有时会看到它需要超过半秒.
任何人都可以了解这里发生的事情吗?这是我正在处理的网络应用程序,因此我没有可以分享的链接,我很害怕.
你使用什么缓存策略?我阅读了脱机食谱,最简单的策略是缓存静态内容,遗漏API调用.
这个策略看起来像这样:
如果在服务器端文件已更改,如何更新缓存?目前,客户端始终获得缓存结果.
这是我的缓存策略的代码:
// You will need this polyfill, at least on Chrome 41 and older.
importScripts("serviceworker-cache-polyfill.js");
var VERSION = 1;
var CACHES = {
common: "common-cache" + VERSION
};
// an array of file locations we want to cache
var filesToCache = [
"font-cache.html",
"script.js",
];
var neededFiles = [
"index.html"
];
var errorResponse = function() {
return new Response([
"<h2>Failed to get file</h2>",
"<p>Could not retrive response from cache</p>"
].join("\n"),
500
);
}; …Run Code Online (Sandbox Code Playgroud)我正在使用Java编程语言进行Selenium WebDriver自动化。在我的测试套件中,该套件一次启动浏览器窗口并执行所有测试。我想在运行某些测试之前清除浏览器缓存,而无需重新启动浏览器。有没有可以达到目的的命令/功能?谢谢。
在调试生产问题时,我们发现对URL的GET请求正在500 Internal Server Error为一个用户返回200 OK,但为其他人返回.看起来500是从缓存中提供的,但是自从重现这个bug以来的任何尝试都没有成功.
我的问题是:是否可以通过浏览器缓存错误响应?如果是这样,哪些浏览器支持它以及我需要复制它的缓存头?
我的直觉是不应缓存错误响应,因为即使修复了错误,您仍将继续被拒绝服务.基于哪些HTTP状态代码可缓存?它看起来似乎500不应该是可缓存的.缓存策略是否跨浏览器一致地实施?
browser-cache ×10
caching ×6
http ×2
.htaccess ×1
android ×1
apache ×1
browser ×1
cors ×1
css ×1
gruntjs ×1
html ×1
http-caching ×1
http-headers ×1
java ×1
javascript ×1
metadata ×1
node.js ×1
pdf ×1
performance ×1
proxy ×1
revision ×1
vaadin ×1
waterfall ×1
webview ×1