javascript - 设置背景图像 css 时如何防止 Google Chrome 访问服务器?

标签 javascript jquery css background-image

当您在谷歌浏览器中设置背景图片(您也可以包括使用 img 标签 - 虽然我还没有测试过)并且服务器不要求缓存它时,谷歌浏览器将点击服务器再次请求图像(即使它已经在页面中 - 我已将其作为错误提交,但它被设置为 wontfix)。有什么方法可以避免这种情况(最好使用 jQuery)?

我已经将图像加载到一个 javascript Image 对象中(因为计划是将它放在 Canvas 上)所以我想我可以用它做一些事情(但 Set an Image object as a div background image using javascript 另有说明)。

将服务器设置为要求浏览器缓存文件并不理想,因为它是动态生成的(我知道 ?_rand=123 技巧,但更喜欢纯客户端解决方案)。

最佳答案

将一个对象换成另一个对象。

如果您说预缓存的图像不能为您解决这个问题(我们很难在没有看到您的实际页面和服务器的情况下知道),那么您唯一的其他潜在解决方案是使用实际图像预缓存一个对象它的背景图像,然后将当前对象换成已经加载背景的对象。如果您披露您尝试更改背景图片的实际 HTML,我们可以更具体地建议如何更改。

但是,这只是一种变通方法,因为更合适的解决方法是让客户端在您需要缓存时使用来自服务器的正确 header 进行缓存。然后,当您不需要缓存时,您可以随时通过在 URL 中附加一些内容来破坏缓存,但是如果您指示浏览器不要通过 header 进行缓存,那么它会听取您的意见并且您无法解决那个。

关于javascript - 设置背景图像 css 时如何防止 Google Chrome 访问服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10167273/

相关文章:

javascript - 是否可以通过循环数组来填充对象实例?

javascript - 关于 iPhone 旋转时 HTML 的问题

c# - 如何将文件上传到 Web API 服务器并将参数发送到操作?

javascript - 如何实现 float 可拖动面板

javascript - 检查某些属性是否有值

html - 在 h1 中居中 div

html - CSS 中的 Z-Index 没有任何效果

javascript - 使用 Jest 忽略 testMatch 中的特定文件夹模式

html - 为响应窗口禁用 Bootstrap dl-horizo​​ntal 类

javascript - 如何在点击时加载谷歌翻译小部件?