如何阻止浏览器在IMG上发送额外请求.JS中的SRC变化
How to stop browser from sending additional request on IMG.SRC change in JS
我正在开发一个应用程序,其中图像会根据不同的用户操作更改其源。大约有200张图片可以以这种方式显示,我确信至少有90%的图片会在某个时候显示出来。
为了防止闪烁,我添加了一个图像预加载器。
然而,当我改变IMG的SRC属性时,浏览器发送一个新的Get请求,即使图像已经加载。
根据profiler,这样的请求平均需要大约30ms,并且浏览器无论如何都会从缓存中加载图像。
是否有一种方法可以防止浏览器发送额外的请求并直接显示图像或这是不可能的?
如果这是不可能的,这是一个不好的做法,把所有200个图像在代码中,只是切换到一个是可见的(或显示更精确)?
如何缓存和图像作为对象在预加载器,只切换他们?
我在考虑的另一件事是把所有这些图像放到一个精灵中,只改变背景位置。
你认为什么是最好的选择?
对于你所描述的快节奏图像交换类型,我推荐使用CSS Sprites。如果你的图片是巨大的,你的受众可能包括相当数量的低速用户,这可能是次优的,但你可以采取一些措施来隐藏它(比如首先加载一个小的静态图像,然后在大图像加载完成后将其与动态元素交换)。
网站的其他方面从未完成,但我们在http://www.premiumframes.com/上使用了这些类型的大规模spriting技术来进行分层图像切换,并在下拉选择器中填充图像。加载了相当多的数据,但对于能够负担得起他们的框架的观众来说,该公司对这种表现非常满意。我怀疑您的需求不会那么极端,因此您应该能够为中低层次用户实现更好的性能。
相关文章:
- 有没有一种方法可以防止img get请求使用css或js发生
- 在openshift node js应用程序中获取请求
- node.js请求数据事件未在CORS ajax调用中触发
- 关于在node.js中请求
- 在Hapi.js Restful API中了解请求IP
- 回复'js'仅当请求有错误时(否则使用html)
- 如何判断请求/承诺是否需要超过5秒才能完成,angular js
- 请求js中的回调问题
- Chrome没有请求JS源地图,但Firefox请求
- 获取请求JS文件的网站的域
- 快递中的客户端 DEL 请求.js
- node.js请求js与curl相比失败
- 从请求.js请求方法返回结果
- 请求.JS和节点.js数据问题
- 从 Backbone 发送发布请求.js返回跨域错误
- 对服务器节点的请求.js
- 节点 - 请求.js仅在服务器上重置错误
- 脚本自己发出错误的请求(JS - TheMovieDb api)
- 如何阻止浏览器在IMG上发送额外请求.JS中的SRC变化
- 变量未在请求 JS 的数据事件中更新