`

高性能WEB开发之图片篇

 
阅读更多

在该网站在不影响原图片的质量下去掉图片中一些元数据,那么这怎么去实现呢?本文就主要告诉你如何高性能WEB开发之图片篇

AD:

 

一、缩小图片大小

当图片很多的时候,减少图片大小是提高下载速度最直接的方法。

1. 使用PNG8代替GIF(非动画图片),因为PNG8在效果一样的情况,图片大小比GIF要小。

2. 用fireworks处理PNG图片,在我们产品中很多PNG图片是美工直接用photoshop导出的,

后来让美工用fireworks处理PNG(大概的方式是选择保存为PNG8,删除背景色)。

处理后100K的图片大小基本减少了3/4,但图片质量也会有少许降低,要看自己是否能接受。

3. 使用Smush.it(http://www.smushit.com/ysmush.it/)压缩图片,Smush.it是YUI团队做1个在线压缩图片的网站,

该网站在不影响原图片的质量下去掉图片中一些元数据,所以可以放心使用该网站进行压缩,

但这个压缩比例也是比较有限的。

二、合并图片和拆分图片

1. CSS Sprites合并图片以减少请求数来提高性能大家都知道。但不要把图片合并太多,太多太大了,

就会因为这1个图片影响这个页面的显示了。

2. 有时候我们需要把1个大图片拆分成多个小图片,比如产品首页图片比较少,就1个很大的banner图片,

因浏览器都可以并发下载图片,所以如果不拆分,只使用1个大图片的话,下载速度反而会比较慢

三、透明图片处理

IE6不能显示透明的PNG图片,是很多开发人员特别头疼的事,分别介绍下几种方式的优缺点。

1.使用AlphaImageLoader,IE6支持filter,使用下面的CSS代码,可以让IE6支持PNG

  1. #some-element {  
  2.     background: url(image.png);  
  3.     _background: none;  
  4.     _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='image.png'sizingMethod='crop');  
  5.   } 

优点:使用简单

缺点:性能损耗很大,AlphaImageLoader会花费很多资源去处理透明图片,使用AlphaImageLoader,IE使用内存会迅速上升。

而且AlphaImageLoader所有处理都在同1个线程中同步进行,所以当AlphaImageLoader多的时候,会阻塞UI的渲染。

使用_filter,IE7也可以识别,其实IE7是可以识别PNG透明图片的,如果在IE7下使用上面代码,IE7不会直接使用图片,而是使用AlphaImageLoader。

注:个人建议尽量避免使用AlphaImageLoader

2. JS处理

使用DD_belatedPNG(http://www.dillerdesign.com/experiment/DD_belatedPNG/),可以很简单的对界面上所有的透明图片进行同一处理。

优点:使用简单(比AlphaImageLoader还简单)

缺点:当页面上需要处理的图片比较多的时候,速度也比较慢,而且不能动态改变图片。

3. VML

IE6支持VML,VML可以使用透明图片,代码如下:

修改html代码头部

  1. html  xmlns ="http://www.w3.org/1999/xhtml"  xmlns:v >   
  2.            head >    
  3.         style  type ="text/css" >   
  4.             v\:* { behavior : url(#default#VML) ; }   
  5.             span style="color: rgb(128, 0, 0);">style >   
  6.            span style="color: rgb(128, 0, 0);">head >     
  7.            body >   
  8.               v:image  src ="image.png"   />   
  9.            span style="color: rgb(128, 0, 0);">body >   
  10.          span style="color: rgb(128, 0, 0);">html > 

优点:性能好,速度快

缺点:使用复杂,而且不支持firefox等浏览器,需要判断不同的浏览器输出不同的HTML代码。

四、多域名下载图片

因每个浏览器对同1个域名同时只能发送固定的请求,比如IE6好像是2个,所以可以对图片资源开通多个域名进行请求,

比如img1.abc.com,img2.abc.com。但域名不要开启太多,因为解析域名和打开新的连接都需要消耗时间,域名多了,说不定反而会更慢。一般2-4个域名就够了。

五、IE6下缓存背景图片

IE6背景图片缓存是个麻烦事,很多人知道使用下面的JS来让IE6缓存背景图片

  1. try{  
  2.      document.execCommand("BackgroundImageCache", false, true);  
  3. }catch(e){}  

但是这样做的效果并不是非常好,当出现鼠标移动改变背景图片的时候,IE6老是会发送1个图片请求(尽管该背景图片已经下载),

虽然返回结果是304,但还是要花费不少时间。在这种情况下,可以使用下面1个变通的方式来处理,

在页面上直接使用1个DIV元素来加载该图片,这样加载图片就能真正被缓存,鼠标移动也不会发送请求了。

六、预加载图片

使用下面代码可以在页面加载完毕后预加载下1个页面的图片,当进入下1个页面就不用再下载图片了。
 

  1. window.onload=function(){  
  2.    var img = new Image();  
  3.    img.src = "images/image.png";  
  4.    img = null;  
  5. }; 
分享到:
评论

相关推荐

    高性能网站web开发之图片管理

    在高性能网站Web开发中,图片管理是一个至关重要的环节。它涉及到如何有效地存储、处理、优化以及展示图片,以提升用户体验并降低服务器负载。本篇内容将深入探讨与图片管理相关的技术点,结合提供的"ImageConvert....

    高性能WEB开发 图片压缩篇

    在高性能WEB开发中,图片处理是提高页面加载速度的关键因素之一。图片压缩技术能够有效减小图片文件的大小,从而加快网页的加载时间。接下来,我将详细阐述图片压缩篇中的几个重要知识点。 一、缩小图片大小 当...

    海康NVR,WEB开发大全.zip

    这篇资料集合显然包含了关于如何进行海康NVR的WEB开发的详细教程和官方插件资源。 1. **海康NVR API接口** 海康NVR提供了丰富的API接口,允许开发者通过HTTP或HTTPS协议进行通讯,实现如视频流的获取、录像回放、...

    高性能WEB开发 nginx HTTP服务器篇

    【高性能WEB开发:Nginx HTTP服务器篇】 前端性能优化对于现代互联网产品至关重要,特别是当产品设计追求炫酷效果,大量使用图片和JavaScript时。为了提高用户体验,减少服务器负载,通常需要对静态资源进行有效...

    查看图片插件,适用于web页面

    在Web开发中,为了增强用户体验,常常需要在网页上实现图片的查看功能,这通常涉及到图片查看插件的使用。本篇文章将详细讲解一个适用于Web页面的图片查看插件,该插件支持图片的旋转、放大、缩小等多种操作,极大地...

    一、高性能WEB开发基础

    新产品为了效果,做的比较炫,用了很多的图片和JavaScript,所以前端的性能是很大的问题,分篇记录前端性能优化的一些小经验。因tomcat处理静态资源的速度比较慢,所以首先想到的就是把所有静态资源(JS,CSS,image,...

    python高级之web服务器

    Python 高级应用在Web服务器开发中的角色是至关重要的,因为...了解并掌握Python Web开发技术,对于提升Web应用程序的性能和可维护性至关重要。无论是小型个人项目还是大型企业应用,Python都能提供合适的工具和框架。

    WEB前端开发课程计划

    ### WEB前端开发课程计划知识点概览 #### 一、课程安排 - **培训周期**:为期2个月。 - **上课时间**:工作日晚上19:00至21:00;周末上午8:30至11:30,下午13:30至16:30。 - **每课时长度**:50分钟,课间休息10...

    web resources

    随着前端框架如React、Vue和Angular的发展,JavaScript在现代Web开发中的作用越来越重要。 四、图片资源:图片是提升网站视觉效果的关键元素。优化图片大小和格式(如JPEG、PNG、SVG)对于网页加载速度至关重要。...

    web前端试题(一)附答案.pdf

    根据提供的文件内容,这篇文档主要涵盖了Web前端开发的基础知识点,尤其集中在HTML、CSS和JavaScript的各个方面。以下是详细的知识点说明: 1. HTML和XHTML的基本概念:文档开头提到了WEB、W3C、css、js、html、...

    web聊天室web聊天室web聊天室

    在Web开发领域,构建一个实时的、互动性强的Web聊天室是一项常见的需求,它可以为用户提供即时通讯的功能,适用于在线社区、教育平台、远程工作等多种场景。本篇文章将深入探讨如何创建一个Web聊天室,主要涵盖以下...

    性能优化-高性能网站建设指南

    因此,对于网站管理员和开发人员来说,了解并掌握高性能网站建设的方法至关重要。本篇指南将深入探讨Web前端性能优化的相关知识点,帮助您构建一个快速、高效、响应迅速的网站。 首先,我们要认识到性能优化的重要...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    由国内著名技术社区联合推荐的2012年IT技术力作:《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》,即将上架发行,此书从Web应用、数据备份与恢复、网络存储应用、运维监控与性能优化、集群高级应用等...

    安卓版本下的Web服务器

    本篇文章将深入探讨安卓版本下的Web服务器及其相关知识点。 首先,我们需要理解Web服务器的基本概念。Web服务器是一种软件,它接收HTTP(超文本传输协议)请求并返回HTTP响应,通常包含HTML文件、图片、视频等...

    网络篇 2:图片优化——质量与性能的博弈(2).md

    从早期的《高性能网站建设指南》作者Steve Souders的观点转变可以看出,图片才是页面上最重要的部分。因为用户可以直接看到图片,而对JS和CSS文件的加载并不那么敏感。图片的加载速度直接影响用户的视觉体验和页面的...

    java web个人博客源码

    本篇将深入解析基于Java Web开发的个人博客系统源码,这是一个适合初学者学习和实践的项目。通过这个项目,你可以了解到Java Web开发的基本框架、技术栈以及核心概念。 1. **技术栈概述** - **Java Servlet**:...

    [课堂课件讲解]Java微服务实践-Spring Boot Web篇(上).pptx

    理解这些基础概念和技术对于构建高性能、可扩展的微服务至关重要。同时,模板引擎的使用进一步提升了Web应用的用户体验和开发效率。在实际项目中,结合这些知识,我们可以更好地设计和实现复杂的微服务系统。

    阿里前端开发规范《word文档》

    阿里前端开发规范是阿里巴巴集团为前端工程师制定的一套标准指南,旨在提高代码质量,提升团队协作效率,确保项目稳定性和可维护性。这份规范涵盖了命名规范、代码结构、注释规则、性能优化、错误处理等多个方面,...

Global site tag (gtag.js) - Google Analytics