css-频繁更改图像,减少服务器请求
css - change an image frequently with less server requests
我在html中有一个。其内容以css描述。使用不同的函数时,div的类名会更改为imageholder1,2等。
.imageholder1 { content: url('image1.png')}
.imageholder2 { content: url('image2.png')}
但我认为这会导致每次更改类名时都有多个服务器请求。
有没有办法减少服务器对图像文件的请求。我想要一种方法将图像存储到一个变量中,然后从css代码中指向它。有可能吗?
我也尝试过使用css图像精灵,但我需要一种更灵活的方式。
如果将所有图像放在隐藏(不显示)div中,它们将同时加载所有图像。浏览器应该缓存它们,所以每次更改时,都会从客户端系统中提取。
<div style="display: none;">
<img src="image1.jpg">
<img src="image2.jpg">
<img src="image3.jpg">
</div>
预加载图像,它将缓存图像,并且只请求每个图像一次(它还将允许图像之间更平滑的转换,因为后续图像已经下载)。这将限制您的http请求为每个图像一个请求(这是您在没有精灵表的情况下可以实现的最低请求)。
这里有一个非常好的jQuery解决方案(它不向DOM添加隐藏元素),但实际上任何预加载方案都应该有效:
$.preloadImages = function() {
for (var i = 0; i < arguments.length; i++) {
$("<img />").attr("src", arguments[i]);
}
}
$.preloadImages("hoverimage1.jpg","hoverimage2.jpg");
参考
根据我的说法,如果我们在一个页面上加载多个图像,就会有多个请求。相反,只需使用一个组合所有图像的精灵。这将导致从服务器获取单个图像。然后为类的背景定义css属性,这样它们将具有用于显示所需图像的精灵的不同位置值。
.imageholder1 {
background: url(/path/to/sprite.png) -60px -120px no-repeat;
}
.imageholder2 {
background: url(/path/to/sprite.png) -20px -120px no-repeat;
}
相关文章:
- 如何检测第三方广告服务器请求
- Javascript onclick需要点击两次,然后会创建越来越多的服务器请求
- 新的会话cookie直到下一个服务器请求才提供
- 将所有angular2捆绑包包含在index.html中会使导入从内存获取数据,而不是再次从服务器请求数据
- web工作程序中不同的服务器请求行为
- 如何使用
- 使用angular js通过代理服务器请求Http
- 正在使用node.js服务器请求文件
- 每x秒从服务器请求数据的最佳方法
- 如何在调用服务器请求时删除错误
- 我应该在我的PhoneGap应用程序中包括我的所有源,还是从远程服务器请求它们
- 节点.js简单的 Web 服务器请求生命周期
- 使用 jQuery 从 NodeJS 服务器请求数据
- 如何从HTTPS服务器请求HTTP服务器的javascript文件
- 如何在没有持续服务器请求的情况下在 AngularJS 中进行视图重定向
- 角度验证:如果用户输入无效的电子邮件或密码,则限制服务器请求
- AJAX 从服务器请求另一个 JavaScript 或函数
- AngularJs.路由.处理服务器请求.很少有问题
- WebWorkers-新Worker不断从服务器请求相同的脚本
- 从服务器请求JSON并用Javascript进行解析