via: http://www.sitepoint.com/complete-guide-reducing-page-weight/
过于笨重的网站将严重影响网站的最终体验,主要表现在以下四个方面:
更大的下载量,导致更慢的用户体验。并不是每个人都拥有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文件,其中的代码实现了“将所有图片缓存一个月”的功能。
.htaccess代码
<IfModule mod_expires.c>
ExpiresActive On
<FilesMatch "\.(jpg|jpeg|png|gif|svg)$">
ExpiresDefault "access plus 1 month"
</FilesMatch>
</IfModule>
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中,可使用如下代码:
Windows cmd代码
copy file1.css+file2.css file.css
在Mac/Linux中,可使用如下代码:
Shell代码
cat file1.css file2.css > file.css
最终文件经过在线CSS压缩工具(如 cssminifier.com、 CSS Compressor & Minifieror等)压缩后即可运行。
最后,请记住在头部(Head)加载所有CSS,以便浏览器展示接下来的HTML元素,同时也可避免浏览器下次再重绘页面元素。
6.压缩并合并JavaScript
平均每个页面需加载18个JavaScript文件,所以我们要将自己编写的JavaScript代码进行合并和压缩。我们可以自己构建压缩工具,也可以使用在线工具,如 YUI Compressor、 Closure Compiler及CompressorRater。
使用JavaScript压缩工具进行压缩,必须十分谨慎。你的代码有一点小问题,即便丢失了一个分号,压缩过程也可能会失败。无论如何,对JavaScript文件进行压缩,可减少HTTP请求数量,从而提高网站性能。
最好在</body>之前加载JavaScript(紧挨</body>),这样可确保该脚本不会阻碍其它内容的加载,同时在该脚本被下载和执行之前,页面的内容已加载完毕,并可阅读了。
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的代码量,访问速度可获明显提升。
相关推荐
它具有低功耗、高数据速率和良好的抗干扰能力。在精简版Zigbee中,CC2420可能被用来实现基础的无线通信功能。 3. **网络层与设备角色** 在Zigbee网络中,设备可以是协调器、路由器或终端设备。协调器负责创建网络...
此外,迅雷的智能分配网络资源策略也得以保留,使得在多任务下载时能有效平衡各任务的下载速率,避免了网络拥堵。 尽管是精简版,但迅雷精简版依然支持BT种子和磁力链接下载,这对于喜欢下载影视资源、大型游戏或者...
- 层次化设计:介绍如何使用层次化原理图和PCB设计,提高设计的可维护性和复用性。 - 高速PCB设计原则:探讨高速电路设计的一些关键点,如信号速率、阻抗匹配等。 通过这个精简教程,初学者可以系统地学习并掌握...
精简版则意味着开发者已经删除了非必要的功能和组件,以降低内存占用,提高运行速度,这对于资源有限的移动设备尤其重要。 串刷是一种常见的手机或嵌入式设备系统更新方法。通过串口(Serial Port)连接设备与电脑...
【标题】基于精简TCP/IP协议栈的信息家电网络服务器 【描述】该文档详细介绍了如何在基于S1C33209微处理器的信息家电网络...通过这样的设计,信息家电能够通过网络接收命令、共享数据,从而提高智能化程度和用户体验。
"局域网飞鸽传书精简版"是一款专为局域网内的文件传输设计的高效工具,其主要特点是速度快,能实现高达3兆每秒的数据传输速率,这对于需要频繁在局域网内部共享文件的用户来说,无疑极大地提高了工作效率。...
鼠标注释美化升级,摒弃之前的美化方式,采用全新美化JS,兼容性和反应速率均有提高; 全站div css标准页面设计架构,延续系统的一贯复古风格,可通过对HTML模版直接编辑以便达到不同效果; 管理员入库,可添加多...
### 变频器与PLC通讯的精简设计 #### 概述 在现代工业自动化领域,可编程逻辑控制器(PLC)与变频器的组合应用极为常见。通过PLC来控制变频器,不仅可以实现对电机转速的精确控制,还能提高系统的稳定性和可靠性。...
- **优点**:中继电路利用率高,能适应不同速率和规程的终端之间的通信。 - **缺点**:网络传输时延大;不适合对实时性要求高的应用场景。 #### 分组交换 - **优点**:结合了电路交换和报文交换的优点,既有较高的...
1. **高效能**:与并行总线相比,虽然串行总线的单次数据传输速率可能较低,但由于其更少的信号线,总线冲突和电磁干扰的可能性大大减小,从而提高了整体通信效率。 2. **低功耗**:串行总线通常具有更低的功耗,这...
在这个项目中,我们关注的是如何设计一个精简版的USB下载线,可能是为了降低成本、简化结构或提高效率。 首先,"0477、USB下载线—new(黑)DXP资料"这部分可能包含了一个之前版本的USB下载线设计,或者是对不同...
4. IMxWebBoost.dll:这可能是Maxthon的网络加速模块,负责优化网络传输速度,提高页面加载速率。通过智能缓存和预加载技术,为用户提供更流畅的浏览体验。 5. MxSk.dll:此文件可能与Maxthon的皮肤系统有关,允许...
【输液泵的使用精简】讲解 输液泵在现代医疗中扮演着重要的角色,尤其在急救、治疗和护理中。它能够精准地控制输液速度和剂量,适用于静脉、动脉输液、管饲、血液及造影剂注入以及癌症患者的药物化疗等。电脑输液泵...
- **磁盘转速与寻道时间**:磁盘转速的提高主要影响数据传输速率,而平均寻道时间不受此因素直接影响。 ### 12. 总线上的数据传输 - **总线共享原则**:挂接在总线上的多个部件在发送数据时必须分时进行,但在接收...
23. ***983*767#** - 上下行速率设置:设置数据传输的上行和下行速率。 24. ***983*1275#** - 查看内部版本的指令:显示设备内部软件版本信息。 25. ***983*2662#** - cmmb耦合测试:测试设备的数字电视接收功能。 ...
在工业自动化领域,PLC(可编程逻辑控制器)与变频器的通信是常见的...总的来说,该精简设计显著降低了PLC与变频器通讯的编程复杂度,提高了工作效率,尤其适合对通讯有较高需求但又希望避免复杂编程的工业应用场合。
5. 文件精简优化:学习如何通过压缩和优化代码来减少文件大小,提高加载速度和服务器效率。 6. 集成与扩展:了解如何将这样的工具集成到现有系统中,如作为CMS插件的使用方法。 以上就是关于这个网速测试工具的主要...