首页 > 其他分享 >精简网站,提高速率

精简网站,提高速率

时间:2023-04-14 11:37:22浏览次数:28  
标签:文件 网站 压缩 JavaScript 速率 精简 CSS 加载


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的代码量,访问速度可获明显提升。

标签:文件,网站,压缩,JavaScript,速率,精简,CSS,加载
From: https://blog.51cto.com/u_16070335/6189754

相关文章

  • 电子商务网站用户行为分析及服务推荐
     importpandasaspdfromsqlalchemyimportcreate_engineengine=create_engine('mysql+pymysql://root:102011@localhost/test?charset=utf8')sql=pd.read_sql('all_gzdata',engine,chunksize=10000)counts=[i['fullURLId'......
  • 电子商务网站行为分析及服务推荐
    #-*-coding:utf-8-*-#代码11-1importosimportpandasaspd##修改工作路径到指定文件夹#os.chdir("./")##第一种连接方式fromsqlalchemyimportcreate_engineengine=create_engine('mysql+pymysql://root:[email protected]:3306/test?charset=utf8',echo=T......
  • 用java做一个并发10W的网站,需要用到的技术有这些!
        你需要使用以下技术和工具:JavaWeb框架:选择一个性能高、可扩展性好、易于使用和维护的JavaWeb框架,如SpringMVC、Struts2、PlayFramework等。数据库:使用高性能的数据库系统,如MySQL、PostgreSQL、Oracle等。使用数据库连接池可以提高性能。缓存:使用缓存可......
  • 网站------网站进行备案处理
    需要在工信部(中华人民共和国工业和信息化部https://wap.miit.gov.cn/)里面设置 下面是具体备案的地址https://beian.miit.gov.cn/#/Integrated/index ......
  • 分享15个对Web开发人员有用的高效工具网站
    1.代码转图片网址:https://carbon.now.sh/使用Carbon创建和分享源代码的精美图像。它提供了多种代码风格和主题。2.JavaScript正则表达式可视化工具网址:https://jex.im/regulex/#!flags=&re=%5E(a%7Cb)*%3F%24   你是那种因为看起来复杂而不想学习正则表达式的人吗......
  • 十大股票资讯网站排名 炒股资讯网站排行榜 炒股必看的资讯网站推荐
    1、东方财富网著名的专业股票网站,创业板首家市值突破千亿的上市公司,是深证成份指数、创业板指数、中证100指数、沪深300指数和深证100指数的样本股。其股票频道提供24小时全球股票行情、股市直播、大盘分析、板块聚焦、焦点点评、报刊头条、热门股追踪、个股点睛、个股精华、公司......
  • 精简jboss
    jboss4.2精简的目录为:deploy/工程.warhttp-invoker.sarjboss-bean.deployerjboss-web.deployerjboss-local-jdbc.raroracle-ds.xmljbossjca-service.xml如果要在netbeans中使用,还要加上jmx-console.warjmx-invoker-service.xml......
  • 网站不收录的原因及解决方法
    新做的网站不被搜索引擎收录是一个比较常见的问题。对于一个新站点来说,没有被搜索引擎收录就意味着没有机会出现在搜索结果页面上,这对于网站的流量和曝光度都会有很大的影响。那么,我们该如何解决这个问题呢?1.确认网站是否被禁止收录首先,我们需要确认一下网站是否被......
  • 网站被黑
    1、在腾讯云上的服务突然停掉了,发现原来数据库被删了,随之而来的是多了一个库README_TO_RECOVER_A  解决办法:1)将数据库密码设置复杂点 2)打开云服务器的防火墙,3306设置固定几个ip能访问。......
  • web网站使用indexedDB缓存大数量案例
    前言及背景indexedDB是html5标准引入的web数据持久化方案之一,现代浏览器大多按照标准对其进行了实现,我在新的项目中用到它来作为持久化数据存储,由于最近在web端项目,每次web前端需要实时计算中间成果预计18G的中间过度数据,预计最终每次生成200M以上的结果数据,在此过程耗时30多......