gpt4 book ai didi

javascript - 在 Chrome/Chromium 插件中检查互联网连接;加载的图像已缓存

转载 作者:行者123 更新时间:2023-11-29 10:31:50 24 4
gpt4 key购买 nike

我正在尝试检查 Chrome 插件中是否存在互联网连接。虽然有可用的 API 调用建议进行检查,但理论上它只检查是否有可能的互联网连接。为了获取此信息,我尝试加载图像

checkConnection() {
var newImg = new Image;
newImg.src = url;
newImg.onload = function() { ... }
newImg.onerror = function() { ... }
}

我确实使用 Image 对象来避免在使用带有 JavaScript 的 get 请求时发生的所有这些同源策略问题(我使用的是插件中的代码,因此没有地址与我的代码:/)。原则上,我上面的代码有效。我有一个每隔一段时间调用 checkConnection 的 setTimeout。但是,当图像成功加载一次(每次插件重新加载)时,它会存储在缓存中,并在连接失败时从那里加载。

你知道如何绕过这个问题吗?或者您是否知道一种聪明的方法可以从 Chrome 插件检查互联网连接,而无需设置可能容忍我的请求来源的服务器?

最佳答案

我知道你有 3 个选项......

正在检查互联网连接

快速谷歌搜索后,我找到了 navigator.onLine .看起来您可以使用它来检查互联网连接,但它并不总是完全准确。

停止缓存图片

如果您可以控制托管图像的域,您可以设置 header 告诉浏览器不要缓存图像。

Cache-Control: no-cache, must-revalidate // HTTP/1.1
Expires: Sat, 26 Jul 1997 05:00:00 GMT // Date in the past

如果您无法控制域,请在加载图像时尝试使用随机数或当前时间戳将 GET 变量附加到 URL。

例如

https://example.com/image.png?time=1496222683
https://example.com/image.png?time=1496223323
https://example.com/image.png?time=1496222313

这可以诱使浏览器认为您正在请求新资源。

关于javascript - 在 Chrome/Chromium 插件中检查互联网连接;加载的图像已缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44280704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com