【问题标题】:How can one prevent caching of resources in a chrome extension?如何防止在 chrome 扩展中缓存资源?
【发布时间】:2012-07-27 13:52:43
【问题描述】:

当使用“加载解压扩展”时。我必须将查询字符串(例如?v=\d+)传递给后台页面中包含的脚本来破坏缓存。

有没有办法禁用这种缓存行为?

【问题讨论】:

  • 为什么要使用加载解压扩展?你不能直接点击“重新加载”吗?
  • 我使用reload,但由于某种原因,它仍然在扩展资源上保留缓存。
  • 那个错误听起来很熟悉。我过去曾经历过,但不再有问题(我创建了一个扩展以加快扩展开发,请参阅this post)。您使用的是哪个 Chrome 版本?
  • 我以为我又遇到了这个错误。经过一番头疼后,我发现我复制了错误的文件。确保检查相关文件是否正确保存到相关目录。
  • 开发工具有一个禁用缓存的选项,我不知道这个缓存是否包含扩展文件,但你可以试试。尽管如此,就像之前的评论说的那样,一定要编辑并保存相关文件:D(我为此多次堕落)

标签: google-chrome google-chrome-extension


【解决方案1】:

也许尝试保留一个带有更新号的文件,当您的用户打开扩展程序时,它会检测到新的更新并清除缓存?您可以在扩展清单中添加缓存权限,如下所示:

"permissions": [
  "browsingData",
],

然后在您的扩展中清除缓存,如下所示:

var callback = function () {
  // Do something clever here once data has been removed.
};

var millisecondsPerWeek = 1000 * 60 * 60 * 24 * 7;
var oneWeekAgo = (new Date()).getTime() - millisecondsPerWeek;
chrome.browsingData.remove({
  "since": oneWeekAgo
}, {
  "appcache": true,
  "cache": true,
  "cookies": true,
  "downloads": true,
  "fileSystems": true,
  "formData": true,
  "history": true,
  "indexedDB": true,
  "localStorage": true,
  "pluginData": true,
  "passwords": true,
  "webSQL": true
}, callback);

【讨论】:

  • 请记住在发布之前禁用它,这将是可怕的行为。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-23
  • 2019-02-01
  • 2012-05-01
  • 1970-01-01
相关资源
最近更新 更多