当前位置: 网站建设 > 网页设计 > 建站经验 >

提高网站性能之―减少图片HTTP请求的方案

时间:2013-03-02 04:05来源:未知 作者:admin 点击:

标签:提高网站性能之―减少图片HTTP请求的方案 请求(8)性能(8)推(1)减少(8)方案(11)提高(37)图片(50)自己(9)Http(2)网站(482)
自己推举:依据详细情形,应用方案一:图片地图(图像热点)或方案二:CSS Sprites。 d 在逾越不同页面时不会被缓存 b 保留数据的大小上受限度(Firefox 1.5支持高达100KB的数据); 效果如下: 注意:这五个按钮实在是在一张图片中 代码如下: data: URL模式- 基础用于内联图片,可以用在任何须要指定URL的处所,如:script和a标签中。 divstyle=border:2pxridgergb(51,51,51), 提高电子商务网站质量的九个方法(下) ;background
提高网站性能之―减少图片HTTP请求的方案》文章地址:http://www.tfxk.com/wangyesheji/jianzhanjingyan/0302342562013.htm

自己推举:依据详细情形,应用方案一:图片地图(图像热点)或方案二:CSS Sprites。

 

            d> 在逾越不同页面时不会被缓存

 

            b> 保留数据的大小上受限度(Firefox 1.5支持高达100KB的数据);

效果如下:

 

注意:这五个按钮实在是在一张图片中

代码如下:

data: URL模式-> 基础用于内联图片,可以用在任何须要指定URL的处所,如:script和a标签中。

 

<div style="border: 2px ridge rgb(51, 51, 51),提高电子商务网站质量的九个方法(下); background-color: rgb(244, 245, 235); width: 200px; padding-top: 4px;">
<center>         <a href="javascript:alert('Home')" title="Home"><img src="http_request_img/home.gif" border="0"></a>
<a href="javascript:alert('Gift')" title="Gift"><img src="http_request_img/gift.gif" border="0"></a>
<a href="javascript:alert('Cart')" title="Cart"><img src="http_request_img/cart.gif" border="0"></a>
<a href="javascript:alert('Settings')" title="Settings"><img src="http_request_img/settings.gif" border="0"></a>
<a href="javascript:alert('Help')" title="Help"><img src="http_request_img/help.gif" border="0"></a>
</center>
</div> <div class="panel_div" style="border:2px ridge #333333;background-color:rgb(244, 245, 235);width:180px;padding:4px 0px 0px 2px;">
     <img ,提高电子商务网站质量的九个方法(上);usemap="#mymap" src="http_request_img/imagemap.gif" border="0" />
     <map name="mymap"> <!-- img使用的map -->
         <area shape="rect" coords="0,0,31,31" href="javascript:alert('Home');"/>
         <area shape="rect" coords="36,0,66,31" href="javascript:alert('Gifts');"/>
         <area shape="rect" coords="71,0,101,31" href="javascript:alert('Cart')"/>
         <area shape="rect" coords="106,0,136,31" href="javascript:alert('Set')"/>
         <area shape="rect" coords="141,0,171,31" href="javascript:alert('Help')"/>
     </map>
</div>

计划一:图片舆图(图像热门):它将用户的点击映射到一个操作,而无需向后端Web服务器发送任何恳求。

那么,五张图片就象征着你的该页面又多了五个HTTP要求,它将大大下降页面的浮现效力。增长的HTTP请求是导致页面性能降落的最大刽子手,所以咱们应当尽量减少HTTP请求,而图片是增加HTTP请求的最大可能者,搞定它,事不宜迟!呵呵^_^

附加常识:URL中的相干协定:http:、data:、file:、ftp:、mailto:、smtp:、pop:、dns:、whois:、finger:、daytime:、news:、urn: 等。这其中有一些是官方注册的,还有一些是因为普遍使用而被接收。

注意:这五个按钮分辨使用了五张图片

            c> Base64编码会增添其图片的大小;

下面列出了三种解决方案:

其中“asdfghjklaasdvdddddddaaaaaddddd++ddd======ssswdvdv33”就是该图片的数据。

            a> 不受IE的支撑(IE7也如斯);

 

效果如下:

CSS Sprites的原理:只是定位到图片其中的一块区域,并显示在某个位置罢了。

      1、内联图片的原理:容许将小块数据内联为‘即时数(immediate data)’,数据就包含在其URL本身之中。

              (可以将内联图片作为背景图片保存在外部CSS样式表中来解决此问题,但会增加一个HTTP请求以换得数据被缓存的成果。);

      2、内联图片的格式:data:[<mediatype>][;base64],<data>

代码如下:

其终极数据将是base64编码格式的图片data数据。

CSS Sprites的长处:通过只使用一个图片减少了HTTP请求,并且比“图片地图”更灵巧。

方案二:CSS Sprites:使用这种方法也可以将五张图片合并为一张图片,并且更为机动。

.home{ background-image:url(data:image/gif;base64,<?php echo base64_encode(file_get_contents("../img/home.gif")) ?>);}

在其HTML中,使用style标签的href属性指定外部款式表文件时,直接指定到了一个PHP模版的.php文件(注意:不是.css文件),该PHP模版使用file_get_contents函数生成其样式表:

当然,使用ASP.NET技巧天生其base64编码格局的图片data数据也不会很难。大家可以自行试验。

 

注意:在这个“CSS Sprites”顶用到的图片就是“图片地图”中的统一张图片。(并顺便只显示其中的三个图标)

--> [网站建设之]进步网站性能之―减少图片HTTP请求的方案

《Higb Performance Web Sites》(中文名:“高机能网站建设指南”)这本书对前端工程师来说,相对值得一读。本人有幸从公司借阅了,但可怜的是感到翻译有点怪怪的,提高用户黏性不是抓住用户不撒手。尤其是在翻译CSS Sprites的要害局部,让人不知所云。幸好原理比拟简略,所以不造成阻碍。^_^
本人看书有做笔记、写示例、发怨言的习惯,所以有了下文。个人备忘也罢,初学者入门也罢,反正赖在这里。所以,拍砖也罢,口水也罢,我都忍着,呵呵。。。 Tag:   HTTP   网站性能     HTTP   网站性能  

 

 

后果如下:

当一个页面的图片在没有使用任何方案的情况下,五个图片超链接就只能使用五个图标按钮。
代码如下:

方案三:内联图片:通过使用data: URL模式在Web页面中包含图片,且无需任何额定的HTTP请求。(IE目前不支持)

在PHP技术中,使用函数file_get_contents从磁盘读取图片并插入到页面中来创立内联图片:

      3、内联图片的缺点:

 

 

举例:一个内联图片能够定义为
<img src="data:image/gif;base64,asdfghjklaasdvdddddddaaaaaddddd++ddd======ssswdvdv33" > <style>
/* 对div中所有span的样式设置 */
#navbar span {
  /* 定义<span>标签将截取的图片宽度跟高度 */
  width:30px; height:31px;
  /* 增加包括了所有图标的图片 */
  background-image:url(http_request_img/imagemap.gif);
  display:inline; float:left;
}
 /* background-position:指定图标在CSS Sprites图片的偏移量
    margin-left 和 margin-right 则用来定位图标地位
 */
.home     { background-position:0 0; margin-left:2px;}
.gifts    { background-position:-35px 0; margin-left:50px;}
.cart     { background-position:-70px 0; margin-left:120px;}
</style>

<div id="navbar" style="border: 2px ridge rgb(51, 51, 51); padding: 4px 0pt; background-color:#ff0; width: 300px; height: 32px;">

  <a href="javascript:alert('Home')" title="Home">
     <span class="home"></span></a> <!-- 留神:该span标签用来加载图片 -->

  <,提高用户回访率是增加网站有效用户的重点;a href="javascript:alert('Gifts')" title="Gifts">
  ,提高ePCM的值,提高Google Adsense的收入;  <span class="gifts"></span></a> <!-- 注意:该span标签用来加载图片 -->

  <a href="javascript:alert('Cart')" title="Cart">
    <span class="cart"></span></a>  <!-- 注意:该span标签用来加载图片 -->
</div>

良多人会误以为:合并的图片要比分别的图片的总和要大,由于合并的图片中包含有附加的空缺区域。
实际上,合并的图片要比分离的图片的总和要小,这是因为它降低了图片自身的开销(色彩表、格式信息,等等)。


(责任编辑:网站建设)
提高网站性能之―减少图片HTTP请求的方案相关文章
上一篇:提高电子商务网站质量的九个方法(下) 下一篇:提高网站收入需要合理设置网站的广告位
回到顶部