网站快速加载,是提供良好用户体验的前提。然而,网站功能的不断增多,程序包的不断臃肿,导致网站访问时较大的下载量,最终影响了响应速度。没有一个用户喜欢等待,如何减少代码量,为网站减去过多负担,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文件,其中的代码实现了“将所有图片缓存一个月”的功能。
- <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中,可使用如下代码:
- copy file1.css+file2.css file.css
在Mac/Linux中,可使用如下代码:
- 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的代码量,访问速度可获明显提升。(编译/陈秋歌)
相关推荐
3. 减轻服务器压力:静态文件的提供不依赖于服务器的运行时环境,减轻了服务器负担。 4. 安全性:静态文件不易受到SQL注入等动态页面常见的安全攻击。 五、注意事项 1. 版本管理:静态文件的更新可能导致缓存问题,...
- **减轻服务器负担**:静态页面不需要频繁访问数据库或其他后端服务,减少了服务器的压力。 - **优化SEO**:搜索引擎更容易抓取静态页面,有助于提升网站的搜索排名。 2. **转换方法**: - **代码实现**:示例...
- 减轻服务器压力:减少服务器端的Java代码执行,降低服务器资源消耗。 - SEO友好:搜索引擎更喜欢静态内容,有利于网站排名。 2. 缺点: - 更新困难:如果需要更新页面内容,可能需要手动或程序化地重新生成...
对于大型网站,使用CDN(Content Delivery Network)可以将静态页面缓存在全球各地的服务器上,进一步提升访问速度,减轻源站压力。 7. **SEO优化** 静态页面对搜索引擎友好,因为它们提供了清晰的HTML结构和可...
2. **减轻数据库压力**:静态页面不涉及数据库查询,避免了数据库连接的开销。 3. **搜索引擎优化**(SEO):搜索引擎更容易抓取静态内容,有利于提高网站排名。 **注意事项**: 1. **更新管理**:当动态内容需要...
3. 降低服务器负担:静态页面不依赖数据库和服务器资源,减轻了服务器运行压力。 4. 安全性提升:静态页面没有动态数据交互,减少了遭受SQL注入等攻击的风险。 二、.NET后台批量生成静态HTML页面 1. 使用ASP.NET ...
这可以极大地减少服务器负载,加快页面加载速度,同时也能减轻数据库的压力。 实现Java页面静态化的常见方法有两种: 1. **预渲染**:在系统启动或者后台定期任务中,根据特定的URL,通过Java代码获取数据并生成...
PHP页面静态化,是把那些内容不常变化的页面静态化,而不通过动态程序从数据库或者缓存中读出,以此来增加响应速度和减轻服务器压力。PHP静态化分为:纯静态化和伪静态化;纯静态化又分为:局部静态化和完全静态化。
当用户请求时,服务器直接返回缓存的HTML,减轻服务器压力。 3. **定时任务生成**: 使用Windows的任务计划器配合ASP程序,定期将动态页面转换为静态HTML。这种方法适用于内容更新频率较低的站点。 4. **事件触发...
- 对于动态页面,使用缓存技术(如Redis或Memcached)可以显著降低数据库查询次数,减轻数据库压力。缓存热点数据,减少数据库交互,能够显著提升网站响应速度。 6. **数据库优化**: - 优化查询性能,包括编写...
- **负载均衡**:静态页面可以存储在CDN(内容分发网络)上,减轻主服务器压力。 3. **实现方式**: - **预渲染**:在用户请求之前生成静态页面,如发布时或定时任务。 - **按需生成**:当首次接收到某个动态URL...
在Java Web开发中,通过预渲染、URL重写和缓存技术等方式实现静态化,可以显著提升用户体验,减轻服务器压力,并有利于搜索引擎优化。同时,也要注意管理和维护静态页面,确保其与动态数据的同步以及安全性。
这种做法的优点在于能够减轻服务器压力、提高网站访问速度,并且对搜索引擎更加友好。但同时也存在一定的缺点,比如维护成本相对较高,需要定期或手动触发生成新的静态页面。 #### 二、实现方式 要实现PHP生成静态...
使用静态页面缓存可以显著提高页面加载速度,减轻服务器压力,尤其对于高流量的网站,这是一种有效的优化手段。 通过以上步骤,JSP动态页面转换为静态页面的过程得以实现,提高了网站的效率和用户体验。然而,需要...
使用这样的工具或方法将动态JSP转换为静态HTML有诸多好处,包括提高页面加载速度、减轻服务器压力、优化SEO排名等。但同时也需要注意,如果网站内容频繁更新或需要高度交互,过度依赖静态HTML可能会增加维护复杂性和...
总的来说,利用程序生成静态页面是一种实用的网站优化策略,通过提前计算和存储页面内容,可以显著提升用户访问速度,减轻服务器压力,并提高搜索引擎的友好性。然而,这种方法也需要注意维护动态内容的同步,确保...
在IT行业中,静态页面生成是一种优化网站性能和SEO(搜索引擎优化)的重要技术。...通过将ASPX等动态页面转化为HTML,开发者可以减轻服务器压力,加快页面加载速度,同时增强网站的搜索引擎优化效果。
2. 减轻服务器压力:大量用户访问时,静态文件可直接读取,降低服务器资源消耗。 3. SEO友好:搜索引擎更容易抓取静态HTML页面,有利于提高网站排名。 4. 可靠性:如果数据库出现故障,静态页面仍可正常访问。 三...
网站生成静态页面是一种常见的优化策略,它通过将动态内容转换为HTML文件,使得用户在访问时无需与数据库交互,从而减轻服务器压力,提高网站加载速度和用户体验。在本篇文章中,我们将探讨几种主流的静态页面生成...
总结来说,真静态技术是提高网站性能和用户体验的有效手段,尤其对于大型网站,它不仅能加速页面加载,减轻服务器压力,还能改善SEO效果。然而,实施时需要根据具体业务需求和系统架构综合考虑,找到最适合的静态化...