【问题标题】:javascript/jquery - recognize loaded from cachejavascript/jquery - 识别从缓存中加载
【发布时间】:2015-10-06 12:10:46
【问题描述】:

我有图片库并且正在更新前端,有没有办法使用 javascript 或 jquery 或任何其他前端技术来识别从缓存中加载的图片?我想为这些项目申请额外的课程。

感谢您的任何建议。

【问题讨论】:

标签: javascript jquery caching


【解决方案1】:

简答:

没有

长答案:

不,这是有原因的: 如果您可以知道该页面的哪个元素来自缓存,则可以推断您的用户访问过同一页面或具有相同元素/资源的另一个页面。这将是一个巨大的潜在隐私泄露。

如果访问链接的颜色会发生变化,也会出现类似的问题(有关更多信息,请参阅http://dbaron.org/mozilla/visited-privacy

【讨论】:

  • Well Özgur 的回答表明,这种隐私泄露确实存在。
  • 不,image.complete 仅表示图像是否已完成加载,它不知道图像是从缓存中加载还是从远程服务器加载
  • 由于 javascript 不是多线程的,如果 image.complete 在设置 src 属性后立即为真,则很有可能从缓存中加载图像。
  • 也就是说,我还没有检查代码是否真的有效。
【解决方案2】:

您可以使用以下功能。但是,如果没有缓存,它将加载图像。

function isCached(src) {
    var image = new Image();
    image.src = src;
    return image.complete;
}

【讨论】:

  • 这只会告诉图片已加载,而不是从缓存中加载
  • @RemyGrandin 你是对的。但如果 image.complete 在设置 src 后为真,则很可能是从缓存中加载的。
猜你喜欢
  • 2011-11-23
  • 1970-01-01
  • 2018-08-03
  • 2012-04-12
  • 2013-06-20
  • 2014-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多