Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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 cachebuster实现的差异_Javascript_Caching - Fatal编程技术网

Javascript cachebuster实现的差异

Javascript cachebuster实现的差异,javascript,caching,Javascript,Caching,“Implementation”可能是一个非常强的词,但我编写了一些“代码”来为javascript广告服务实现进行缓存破坏 我采用了我认为最短最明显的方法: var cachebuster=Date.now(); 然后将其附加到.js查询字符串中。我收到一封来自广告供应商的电子邮件,声明所有脚本请求现在都必须包含以下代码: var cachebuster=Math.round(Math.random() * 100000); 大概供应商不知道我们已经在做我们自己的,这只是一封格式信。但是我

“Implementation”可能是一个非常强的词,但我编写了一些“代码”来为javascript广告服务实现进行缓存破坏

我采用了我认为最短最明显的方法:

var cachebuster=Date.now();
然后将其附加到.js查询字符串中。我收到一封来自广告供应商的电子邮件,声明所有脚本请求现在都必须包含以下代码:

var cachebuster=Math.round(Math.random() * 100000);
大概供应商不知道我们已经在做我们自己的,这只是一封格式信。但是我想确保我没有遗漏什么。这似乎是一个更愚蠢的实现(您有可能会出现两次随机数,因此会得到一个缓存脚本,再加上它更长、更慢*),但它来自可能知道他们在做什么的供应商。有没有理由走他们的路而不是我的


*尽管在不知不觉中

他们可能希望在同一毫秒内收到多个请求。cachebuster不是为了让客户端不缓存URL吗?当查看缓存时,查询字符串被考虑在内,cachebuster的想法是阻止任何缓存。假设
www.example.com/resource
是您要使缓存无效的资源,它是通过GET方法获取的,您可以执行
www.example.com/resource?一些url组件
www.example.com/resource?其他url组件
,它们是缓存检查的两个不同资源,都将是缓存未命中。此策略假定在服务器端忽略查询字符串。您通常会看到类似于
www.example.com/resource?cb=this\u arg\u被忽略&actual\u param=value&……