Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 强制移动设备更新其缓存_Javascript_Css_Jquery Mobile_Mobile Website - Fatal编程技术网

Javascript 强制移动设备更新其缓存

Javascript 强制移动设备更新其缓存,javascript,css,jquery-mobile,mobile-website,Javascript,Css,Jquery Mobile,Mobile Website,我注意到Android和Apple设备上的缓存可能非常密集,我们下周将推出一个jquerymobile网站投入生产,我需要确保我有能力清除用户的缓存 我曾尝试在JS、CSS资源的查询字符串中添加一个增量数字,比如?v=2e.t.c,它似乎工作正常,但也发现有时不工作 有人有什么想法吗?清单?我一直使用缓存破坏查询字符串强制从服务器加载新副本 您也可以使用,但这(理论上)将消除页面上的所有缓存,而不仅仅是在更新发生时。将get变量添加到资产的源将适用于单个资产,但如果缓存整个页面,则找不到新的变量

我注意到Android和Apple设备上的缓存可能非常密集,我们下周将推出一个jquerymobile网站投入生产,我需要确保我有能力清除用户的缓存

我曾尝试在JS、CSS资源的查询字符串中添加一个增量数字,比如?v=2e.t.c,它似乎工作正常,但也发现有时不工作


有人有什么想法吗?清单?

我一直使用缓存破坏查询字符串强制从服务器加载新副本


您也可以使用
,但这(理论上)将消除页面上的所有缓存,而不仅仅是在更新发生时。

将get变量添加到资产的源将适用于单个资产,但如果缓存整个页面,则找不到新的变量值,并且将加载所有缓存的资产

因此,也许您可以禁用索引页的缓存,这样,如果您更改资产的源,它将在用户每次查看索引页时反映出来


我相信您也可以使用缓存清单告诉浏览器不要缓存某些资产:

我听说过这样的情况,即查询字符串被忽略,将index.js?v=3更改为index.3.js之类的值,然后您可以使用.htaccess重定向

以下是H5BP使用.htaccess和时间戳处理此问题的简洁方法:

<IfModule mod_rewrite.c>
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L]
</IfModule>

重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.+)\(\d+)\(js | css | png | jpg | gif)$$1.$3[L]

这将把所有请求路由到/path/filename.20120101.ext到/path/filename.ext。然后,您必须在文件名中包含一个时间戳,如index.20120329.js,它将重定向到index.js

在哪些浏览器上版本缓存buster参数失败?