`

[转载]管理好页面图片,减少页面加载时http连接,优化页面

阅读更多

点我查看原文

       浏览器渲染页面的时候,遇到图片标签或者css中的背景图片设置,先会到本地缓存中寻找是否已经下载了这张图片,如果已经下载过了就直接从缓存中加载;否则会到图片指定的路径下载到本地缓存。而且这种下载是阻塞式的(部分浏览器内核已经实现异步加载图片。比如火狐)。也就是说在下载这些图片的时候,页面渲染处于暂停状态,必须等到图片下载完成了再继续渲染。

       所以,如果一个页面中有大量的图片需要加载,先不说图片本身的大小对下载速度的消耗,每次图片下载都是一次http请求,都要经历3次协议握手,这对页面加载速度的影响是显而易见的!!如果图片再大一点,每张一两百K,杯具了……

那么如何管理这些页面图片、背景图片以加快页面渲染速度呢?下面,我将我的一些经验分享给大家。

一、页面图片处理

1.延迟加载

1)所需技术:

lazyload

2)原理:

            • 先使用一种空白的图片grey.gif代替指定的图片元素(lazyLoad允许指定页面上那些图片需要延迟加载。比如$("img.lazy").lazyload()表示class为lazy的图片延迟加载。$("img ").lazyload()表示所有图片都延迟加载)。
            • 当页面滚动条滚动到该图片时,再将图片的src还原。

有时,你可能浏览某些网页时,滚动页面滚动条时发现有些图片显示为正在加载。就是使用这种技术实现的。

3)使用:

 

<img src="test.jpg" alt=""/>

jQuery(document).ready(function() {
    $("img").lazyload();//更多的配置请参考官网
}); 

 

    注意:lazyload好处在于并不会影响页面元素的开发。你不需要在img标签上附加任何的配置。lazyLoad会自动将图片的src设置为空白图片 grey.gif。

 

2.异步加载
1) 原理:

        异步加载跟延迟加载有点不一样。延迟加载是当滚动条滚动到图片位置时,重新加载图片;而异步加载就是页面加载完成后,将指定的图片重新加载。

跟延迟加载一样,需要将图片的src属性先指定为一张空白的图片。然后将图片本来的地址放入 lazyload 属性(属性名称可以自己定义)。页面加载完成后,使用javascript将图片的src属性替换为data属性的地址。这有点像是在模拟火狐浏览器异步加载图片的行为,呵呵。

2)范例:
<img src="grey.gif" alt="" lazyload="test.jpg"/>

       注意:这里需要事先将src属性设置为grey.gif,并将真实的src放入lazyload属性。

下面使用javascript替换src:

jQuery(document).ready(function() {
    $("img:[lazyload]").each(function(){
        $(this).attr("src",$(this).attr("lazyload"));
    });
});

二、背景图片处理

1.不需要平铺的背景图片
1)优化
  • 将这些图片进行归类,icon的一类、button的一类、其他背景素材一类……
  • 归类好后,将他们分别放入一张大的png背景图片中
  • 需要使用背景的地方,通过css的background-position进行指定背景位置
2)范例
.bg1{background: url(/img/imgBg.png) no-repeat -100px -50px; overflow: hidden;}
2.需要平铺的背景图片
1)优化
  • 将横向平铺的和纵向平铺的分别归类
  • 将这些图片剪裁成等宽(横向平铺)、等高(纵向平铺)。最好宽度或者高度设为1px
  • 将这些图片放入一张大的png图片中
  • 使用css的background-position进行指定背景位置,并设置background-repeat为repeat-x或者repeat-y
2)范例
.bg2{background: url(/img/imgBg_repeatX.png) repeat-x 0px -50px;}

 

3.建议
1)优化
  • 定义一组公共样式:bg、repeatXBg、repeatYBg,指定背景图片路径
  • 在需要使用背景的css中直接指定background-position
2)范例

公共样式

.bg{background: url(/img/background/base.png) no-repeat left top; overflow: hidden;}
.repeatXBg{background: url(/img/background/base_repeatX.png) repeat-x left top;}
.repeatYBg{background: url(/img/background/base_repeatY.png) repeat-y left top;}

页面样式:

bg1{background-position: 0px -33px; }
repeatXBg1{background-position: 0px -33px; }
repeatYBg1{background-position: -33px 0px; }

html:

<div class="bg bg1"></div>
<div class="repeatXBg repeatXBg1"></div>
<div class="repeatYBg repeatYBg1"></div>

 

 

分享到:
评论

相关推荐

    页面加载中js 页面加载中js 页面加载中js

    综上所述,"页面加载中js"涉及了网页性能优化的多个方面,包括脚本的异步加载、延迟执行、资源预加载、事件监听、路由管理等策略。通过巧妙地运用这些技术,开发者可以创建出加载速度快、用户体验良好的现代Web应用...

    RunLoop优化tableView加载大量图片卡顿问题

    4. **批次加载**:只在即将显示的cell范围内加载图片,当cell离开可视区域时取消加载或释放资源,这样可以减少内存占用。 5. **图片压缩与尺寸调整**:对大图进行适当的压缩和尺寸调整,降低内存占用,加快加载速度...

    页面加载时 提示 正在加载中

    "页面加载时提示正在加载中"这一功能,正是为了提升用户体验而设计的。当用户点击链接或提交表单时,页面加载的过程可能会消耗一些时间,特别是在处理大量数据或者进行复杂的计算时。这种等待可能会让用户感到不耐烦...

    手机页面预加载效果

    3. **资源优先级管理**:通过判断哪些资源对用户体验最关键,优先加载这些内容,比如页面布局和主要功能,然后逐步加载非必需的图片或视频。 4. **骨架屏**:骨架屏是预加载的一种形式,它在内容实际加载前显示页面...

    拖动滚动条自动加载图片页面

    这种技术允许用户在滚动页面时,内容(如图片)会随着滚动条的移动而逐步加载,而不是一次性全部加载到浏览器中。这样做的主要目的是优化用户体验,尤其是当页面包含大量内容时,可以避免一次性加载所有资源导致的...

    js页面图片延迟加载特效.zip

    这种技术的原理是,当用户滚动页面到达图片区域时,图片才会被加载,而不是在页面初次加载时一次性加载所有图片。这样可以显著减少页面初次加载的时间,改善用户浏览体验。 在"js页面图片延迟加载特效.zip"中,主要...

    正在加载效果图片

    预加载可以在后台加载用户可能需要的资源,而懒加载则是在用户滚动到相关内容时才开始加载,这两种方法都能有效减少首次加载页面时的等待时间。 总的来说,"正在加载效果图片"是网页设计中的一个重要元素,它关乎...

    页面加载

    页面加载是Web开发中的核心概念,它涉及到用户打开一个网页时浏览器如何获取、解析和显示内容的过程。在本文中,我们将深入探讨这个过程,并结合"源码"和"工具"这两个标签来理解如何优化和分析页面加载性能。 首先...

    jQuery页面区域预加载布局代码

    这有助于减少用户等待整个页面完全加载的时间,尤其是对于内容丰富的网站,如包含大量图片、视频或者复杂脚本的页面。 **布局代码**涉及到CSS(层叠样式表),用于定义网页的样式和布局。在这个项目中,CSS文件可能...

    magento图片延时加载插件

    Magento的图片延时加载插件实现了这一功能,通过智能地延迟非可视区域图片的加载,减少了页面的HTTP请求次数,从而提升了网站的加载速度。当用户向下滚动页面时,未被看到的图片会自动开始加载,这样既保证了用户...

    延迟加载 html优化

    "延迟加载"(Lazy Loading)技术就是一种有效的HTML优化策略,它旨在减少页面初次加载时的数据量,提高页面的响应速度,进而改善用户的浏览体验。延迟加载的核心思想是只在用户需要时才加载图像或其他资源,而不是一...

    页面局部加载,适合Ajax Loading

    - **状态管理**:由于页面局部更新,需要确保DOM元素的正确插入和删除,同时处理好页面状态,如分页计数、加载指示器等。 - **错误处理**:处理Ajax请求失败的情况,提供友好的用户反馈。 - **SEO优化**:搜索引擎...

    页面渲染原理及页面优化

    为了更好地优化页面加载速度,需要了解浏览器的渲染原理。 浏览器的渲染过程可以分为以下几个阶段: 1. 下载 HTML 文件:浏览器首先需要下载 HTML 文件,并对其进行解析。 2. 解析 HTML 文件:浏览器对 HTML 文件...

    WEB页面正在加载实例

    例如,当用户滚动页面到图片或者视频的位置时,它们才会被加载,而不是在页面初始加载时一次性加载所有资源。这减少了初次加载页面的时间,提高了页面性能。 3. **JavaScript (JS) 在Web加载中的作用**:JavaScript...

    页面内容滚动加载

    页面内容滚动加载是一种常见的网页优化技术,也被称为“无限滚动”或“滚动侦测加载”。这种技术允许网页在用户滚动到页面底部时自动加载更多内容,而不是一次性加载所有内容,从而提高了网页的加载速度和用户体验。...

    JS即时加载,当用到图片时才加载,只加载当前屏幕的图片

    JavaScript(简称JS)即时加载是一种优化网页性能的技术,它的核心思想是延迟非当前视口内的资源加载,以减少网络带宽消耗,提升页面加载速度,改善用户体验。这种技术尤其适用于处理大量的图片资源,如在滚动长图...

    简单的图片懒加载实现

    图片懒加载是一种优化网页性能的技术,它通过延迟加载非可视区域内的图片,直到用户滚动页面使其进入可视区域时才开始加载。这种技术可以显著减少页面初始化时的数据传输量,提高页面加载速度,提升用户体验,特别是...

    图片延迟加载技术

    这种方法主要针对那些不在浏览器视口内的图像,避免在页面初始加载时就下载所有图片,而是等到用户滚动到相应位置时再进行加载。这样可以显著减少页面的初次加载时间,提升用户体验,并降低服务器带宽需求。 1. **...

    手机端h5页面适配+预加载+获取资源加载进度模板

    - **图片预加载**:使用JavaScript创建Image对象,提前加载图片资源,避免用户在滚动页面时出现延迟加载的现象。 - **CSS预加载**:通过CSS Sprites技术将多个小图标合并成一张大图,减少HTTP请求次数,提高加载...

    仿照谷歌图片搜索页面的图片懒加载浏览

    仿照淘宝搜索页面的图片懒加载,只加载可视的图片...

Global site tag (gtag.js) - Google Analytics