说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

精简代码,为网站减负的十大建议

HTML文档下载 WORD文档下载 PDF文档下载
过于笨重的网站最终将影响用户体验。据统计,2013年每个网页文件的大小平均增加了32%。如何为网站减负,提高访问性能?本文列出了精简代码量的十大原则。

网站快速加载,是提供良好用户体验的前提。然而,网站功能的不断增多,程序包的不断臃肿,导致网站访问时较大的下载量,最终影响了响应速度。没有一个用户喜欢等待,如何减少代码量,为网站减去过多负担,Craig Buckler在sitepoint网站发表了一篇文章《10 Quick and Easy Fixes to Reduce Page Weight》,分享为网站减负的十个建议。下面为该文的编译内容。

2013年,网站页面的重量增加了32%,竟然达到了1.7MB,包含96个独立HTTP请求。这只是一个平均数值,其中近一半的网站已经超过了这个数值。网站的过度臃肿正趋于流行,其中很大的责任在于Web开发者。

过于笨重的网站将严重影响网站的最终体验,主要表现在以下四个方面:

  • 更大的下载量,导致更慢的用户体验。并不是每个人都拥有20M的网络连接,尤其是对于那些不发达地区。不管你的网站多么优秀,用户永远不希望等待。
  • 移动Web访问正迅速发展,移动网民几乎占到所有网民的1/4。在典型的3G网络连接下,一个1.7Mb的网站加载需要近一分钟。如果你的网站无法高效工作于这些移动设备,那采用响应式Web设计技术又有什么用呢?
  • 网站加载速度已被谷歌加入排名算法中。加载缓慢会降低网站排名,同时也会影响搜索引擎优化。
  • 网站包含的代码越多,更新和维护它所花费的时间就会越长。

Craig Buckler预言,2014年网页的重量将会下降。那如何精简代码,为网站减负呢?Craig Buckler给出了十条建议。这些建议中涉及到的技术均是大家熟知的。

1.启用GZIP压缩

根据 W3Techs.com上的数据显示,近一半的网站都未进行过压缩。在Web主机上,通过简单的服务器设置即可开启GZIP压缩。

2.支持浏览器缓存

如果浏览器能容易地缓存一个文件,那它就无需反复下载该文件了。实现该功能的一个解决方案,就是在HTTP头中设置合适的 Expires Header、上一次修改时间或采用的 ETags。

你可通过配置服务器来自动完成以上工作。下面是Apache中的.htaccess文件,其中的代码实现了“将所有图片缓存一个月”的功能。


3.使用CDN

浏览器限制了每个域中可同时处理的并发HTTP请求数量:4至8个。如果你的网页需要从域中加载96个资源,那浏览器最多可设置12组并发请求。(因为文件大小并不同,这种情况实际上并不会发生,但该限制仍然适用。)

如若从另一个域中请求静态文件,则可使浏览器处理的HTTP请求数量加倍。此外,一个文件被调用后就会产生一个缓存文件,以供下一个调用它的网站使用。我们可选用JavaScript库(如jQuery)和字体库,同时你也可以考虑专用的图片托管。

前面提到的三条建议可以加快网站的加载速度,下面的建议将帮助我们检查网站代码,以高效地减少网站重量。

4.删掉没用的资源

网站一直在变革之中。如果你不再使用某组件,那就删掉与之关联的CSS和JavaScript。如果它们包含在一个单独文件中,处理起来就会很简单。否则,你需要借助一些工具,如Chrome的Audit开发工具、 JSLint、 Dust-Me Selectors、 CSS Usage、 unused-css.com,也可构建 grunt-uncss此类的工具。

5.合并和压缩CSS

理想的情况是只拥有一个CSS文件(如果你使用RWD以支持IE的老版本,那就需要两个CSS文件。)构建并维护几个单独的CSS文件也算合理,但在部署到产品服务器之前,你应该将它们集合在一起,并删掉那些不必要的空白区域。

Saas、LESS和Stylus等预处理器可帮你完成这些痛苦的工作。 Grunt.js、 Gulp等工具可自动化你的工作流。如果你更喜欢GUI,可借助Koala提供的免费跨平台应用。

如果你觉得这些比较麻烦,也可手动通过命令行工具将CSS文件集中在一起,如在Windows中,可使用如下代码:


在Mac/Linux中,可使用如下代码:


最终文件经过在线CSS压缩工具(如 cssminifier.com、 CSS Compressor & Minifieror等)压缩后即可运行。

最后,请记住在头部(Head)加载所有CSS,以便浏览器展示接下来的HTML元素,同时也可避免浏览器下次再重绘页面元素。

6.压缩并合并JavaScript

平均每个页面需加载18个JavaScript文件,所以我们要将自己编写的JavaScript代码进行合并和压缩。我们可以自己构建压缩工具,也可以使用在线工具,如 YUI Compressor、 Closure Compiler及 CompressorRater。

使用JavaScript压缩工具进行压缩,必须十分谨慎。你的代码有一点小问题,即便丢失了一个分号,压缩过程也可能会失败。无论如何,对JavaScript文件进行压缩,可减少HTTP请求数量,从而提高网站性能。

最好在</body>之前加载JavaScript,这样可确保该脚本不会阻碍其它内容的加载,同时在该脚本被下载和执行之前,页面的内容已加载完毕,并可阅读了。

7.使用正确的图片格式

错误地使用图片格式会增加网页的负载。图片格式通常有以下使用原则:

  • 照片使用JPG格式;
  • 其他的使用PNG格式。

当你有一些小图像,它们仅包含有限的几种色彩集,采用GIF格式,其压缩效果可能更好。本文暂不讨论向量图。

现在有大量免费的图形软件包,可用来转换图片的格式。其中像XnView允许你批处理这些文件。请记住下面两条原则:

JPG为一种有损压缩格式,其质量介于0(质量很差、更小的文件)至100(质量最好,更大的文件)之间。介于30至70之间的大部分图片显示效果比较好。

PNG支持256颜色表和24位的真彩色。如果你不需要透明,并能控制调色板,那256的PNG图像颜色模式可能压缩得更好。

8.重整大图片的尺寸

即便是最入门级的智能手机上的照片机(三百万像素),其拍出来的照片往往太大而不适合在网站上显示。但大部分内容编辑者往往将图片直接从相机中直接上传到网站上。因此,我们需要一个可以自动调整图片尺寸的系统。

图片的尺寸永远不能超过它所在容器的最大值。如果网站模板的宽度最大为800px,那图片的宽度就不能超过该值。一些高分辨率、Retina显示屏,可显示宽度为1600px的图片,但这仍比从相机中直接输出的图片要小。

在减轻网页重量方面,图片尺寸的调整起着重要的作用。将图片尺寸缩小50%,可节省75%的总空间,相当于减少了文件大小。

9.进一步压缩图片

即便已将图片调整为正确的格式和尺寸,你仍可使用一些分析和优化图像的工具进一步压缩图片。这些工具包括 OptiPNG、 PNGOUT、 jpegtran和 jpegoptim。大部分工具可独立安装,也可整合入你构建的过程中。另外,还有一些在线工具,如Smush,它可以工作于云上。

10.去掉不必要的字体

Web字体对设计进行了重大改革,减少了基于图像的字体的使用。但是,使用传统字体后,网页的代码量往往会增加数百KB。所以网站中这种字体的使用尽量控制在两、三种以内。

利用以上提到的方法,大部分网站可以将减去30~50%的重量。对于一般的网站,可以减掉800KB的代码量,访问速度可获明显提升。(编译:陈秋歌)

内容来自:10 Quick and Easy Fixes to Reduce Page Weight

VB如何设定墙纸的显示方式? VB如何用API及MMSYSTEM.DLL播放AVI文件 VB如何知道计算机是否安装声卡? 设计简单的屏幕保护程序 -VB资料 使机箱内的小喇叭发出不同的声音 -VB资料 使用VB设计具有「动感」的命令图标栏 五彩缤纷的清屏效果-VB资料 系统是否支持声音 -VB资料 一个实用的VB屏幕程序 一个自动更换墙纸的小软件-VB资料 VB用 VB 设 计 VCD 播 放 器 VB用API播放 .wav 声音文件 VB用MCI指令进行多媒体编程 用VB5.0编写自己的MP3播放器 用VB6.0编写电脑抽奖程序 用VB6的双通道技术获得影碟片断 用VBScript制作活动主页 用VB编写DirectX7.0游戏(下) 用VB编写FLASH动画播放器 用VB设计VCD播放器 用VB实现队列播放MP3 用VB实现屏幕滚屏保护效果 用VB制作下雪的特技景象 用VB自制屏幕保护程序 用Visual Basic实现多画面播放功能 雨滴式的显示图片 -VB资料 在VB5.0中制作多媒体界面 在VB5中将英文字母及阿拉伯数字旋转任意角度 在VB5中如何使机箱内的小喇叭发出不同的声音? 在VB6.0中播放GIF动画 在VB应用程序中恰当的使用声音 谁知道哪里有bmp图片可以下载,给个详细网址,多谢 VC 兼职? 荷兰国旗问题 ASP刚学,用什么方式好吗 斑竹!!!!!!!!!!!!!!!! 关于IE浏览 请问vb如何访问foxpro 6.0的数据库,最好有源程序,谢谢. he_cti@163.net 算了,散分 我散,我散,我散散散 散3 发分!!!! 发分!!!!! 发分!!!!!!!! 发分!!!!!!!!!!!! 发分!!!!!!!!!!!!!!!!!!! 请问如何去掉测试版软件的“购买”提示框???急急急急!!! 有关获取HTML中Frames的问题? 给分!!!!!啊 给分!!!!!啊!! 给分!!!!!啊!!!!!! 给分!!!!!啊!!!!!!!!!!!!! 给啊!!!!!!!!!!!!! 不是俺蓄意谋两位帮主的反,实在是 ... APPLET连接数据库。。。(我已经每粉了) 千分散尽不复来!!! 千分散尽不复来!!!! 千分散尽不复来!!!!! 千分散尽不复来!! 千分散尽不复来!!!!!!!! 千分散尽不复来!!!!!!!!! 千分散尽不复来!!!!!!!!!!!!! 用分把灌水乐园咽死!!!!! 千分散尽不复来!!!!!!!!!!!!!!!!! 千分散尽不复来!!!!!!!!!!!!!!!!!! 千分散尽不复来!!!!!!!!!!!!!!!!!!! 千分散尽不复来!!!!!!!!!!!!!!!!!!!!! 千分散尽不复来~ 千分散尽不复来~! 请教数据窗口的问题 千分散尽不复来? 千分散尽不复来?! 有LVS_OWNDATA属性的CListCtrl 加图标的问题,25分 在做会员注册时,在添加新数据页,程序一运行就在RS.updata出错,为什么(原程序) 高手请你回答我啦!!!! 我要回家了,第一个给300 哪有msproxy下载????? 请问要怎么样才能在自己写的程序运行时让用户无法使用开始菜单? jdbc的版本 发分!!!!!!!!! 对于初学者,应该学些什么样的数据库? Java的优点 数学有三个未知数的均值不等式的题怎么做.例:a、b、c属于R,证明:a方+b方+c方大于等于ab+bc+ca 我太笨 x分之0.125等于4分之1比百分之80要过程 一个数的百分之60是120,这个数是多少 cosA等于11\14,A等于多少, A加A加B加B得于70,A加B等于多少 一个工人要加工120个零件,已经加工了百分之八十,还要加工多少个 a-a方等于多少 在三角形ABC中,角A=35°,角B=65°,则角C等于多少? 一个数的百分之60是120,这个数的10分之3是多少? √3+1分之2等于几(要求过程) A,B是自然数,A加B等于35,那么A乘B最大是多少 4.5乘80%等于多少 3—3分之3—2分之一等于多少? a+a+b+b=70 a+b等于几 3+3乘5等于 a 分之2等于b 分之3,那么a :b 等于( ):( a=b,a和b都不等于0,a与b成什么比例 3乘5等于几 10分之1除于10等于多少? 80分制的60和70相当于100分制的多少? 1-三分之二-九分之二-二十七分之二-八十一分之二-二百四十三分之二-七百二十九分之二 简算 1加1等于几有几种答案 70人相当于80人的几分之几?谁知道啊 三分之一,负九分之二,二十七分之三,负八十一分之四,( ),( )按规律括号里填什么? 1.25等于什么分数 1200乘以百分之108.8等于多少 三分之二加九份之二家二十七分之二加八十一分之二加二百四十三分之二用简便方法计算 1+1为什么等于2? 38乘以1200等于多少 九分之二除与27分之八等于多少 5分之一减6分之一等于【用分数解答】 多少的百分之八十是六十 (1又三分之二+九分之八-1二十七分之二)×27 90加百分之60X等于102,解方程 4个5怎么算等于8 80增加到90,增加了百分之多少 用+ 、-、×、÷、( )和分数把六个6组成四个算式,使运算的结果等于25. 4个五怎样算等于8 一百分之八十和百分之八十有什么不同和相同? 2,4,6,8中间用+-×÷只能一次算要结果等于25怎么算? 4个8怎么算等于888 1.200吨相当于320吨的百分之几 2.60千米比80千米少百分之几 a,5,b,c,d,e,3要求相邻3个数和相等,a,d各等于多少 8000秒等于多少小时 0.8%等于一百分之几?80.8%等于百分之几? π等于多少{1000位或以上} 649980秒等于多少小时?如何计算?我不知道这个时间应该怎么计算成小时?是按照传统的那种算法吗? 一件上衣原价120元,换季打折时降到80元,比原价降低了百分之几?相当于打了几折? 角A加角B加角c加角d加角e 等于? 150000秒等于几个小时怎么计算的? 数学题:一件上衣原价240元,换季打折降到了80元,这件上衣的售价比原价降低了百分之几?要过程!在线等再问一个:某校四、五、六年级共有18个班,平均每班有48人,三个年级的人数比是4:2 在数学中e等于多少 8000小时相当于多少天? 一件上衣原价120元,换季打折时降到8O元,比原价降低了百分之几?相当于打了几折? 用C++编程用while循环,要求求e的值,e约等于1+1/1!+1/2!+1/3!+.+1/N! 要求直至最后一项的值小于10^- 337218秒等于多少小时多少分 ,怎么算的啊 一件上衣原价80元,换季打折时降到60元,这件上衣的价格比原来降了百分之几? 单纯是不是就等于笨啊?单纯等于笨? 多少比16等于15比多少等于多少比80等于百分之125 一件上衣原价240元,换季打折降到了80元,这件上衣的售价比原价降低了百分之几?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn