首页 > 其他分享 >web前端性能优化小结

web前端性能优化小结

时间:2022-12-07 21:39:34浏览次数:46  
标签:脚本 web 前端 样式表 规则 组件 小结 页面


                                       web前端性能优化的14个技巧     

 平时接触的很多优化都是后台程序或数据库级别的,最近浏览了下《高性能网站建设指南》,学习了下关于前端性能的优化技巧,在此总结下。

     一、web页面的性能分析
           性能黄金法则:只有10%~20%的最终用户响应时间花在了下载HTML文档上,其余的80%~90%时间花在了下载页面中的所有组件上。
          这里的组件包括js,图片,样式表,flash等

    二、具体优化规则:

        规则1:减少HTTP请求
                  具体措施:
                 1.图片地址(Image Map)——一张图片上点击不同的地方触发不同的链接
           
                 2.CSS sprites(合并图片)——将多幅图片合并为一幅单独的图片。
  
                 3.内联图片——使用data:URL模式将图片数据直接放在URL中

                4.合并脚本和样式表——采用外部脚本和样式表相比内联对性能更有利,但是过多的脚本和样式会增加额外的HTTP请求
 
规则2:使用内容发布网络
       内容发布网络:一组发布在多个不同地理位置的web服务器,用于更加有效地向用户发布内容。
       缺点:受网络(CDN)影响很大。主要用于发布静态内容,如图片、脚本、样式表和flash。

规则3:添加Expires头(缓存时间的控制)
         主要是针对浏览器对组件的缓存问题。    
         除了Expires头还可以设置Cache-Control max-age头。
       设置的对象,应该包含任何不经常变化的组件,包括脚本,样式表和flash组件。

规则4:压缩组件
      通过减小HTTP响应的大小来减少响应时间。
      web客户端可以通过请求中的 Accept-Encoding头来识别对压缩的支持。
 
      web服务器通过响应中的 Content-Encoding头来通知web客户端。

      目前主流的压缩方式是:gzip。   采用Conten-Encoding:gzip

      压缩的对象:主要是脚本和样式表
      注意:图片和PDF不应该压缩,因为他们本来就已经压缩了。

      压缩的成本:服务端会话费额外的CPU周期来完成压缩,客户端要对压缩文件进行解压缩。
              要检测收益是否大于开销。

规则5:将样式表放在顶部head中,并且使用link加载,而不要使用@import加载
       逐行呈现:为了避免当样式变化时重绘页面中的元素,浏览器会阻塞内容逐步呈现。
       放在底部容易出现的问题:白屏和无样式内容的闪烁。
       页面逐步呈现的,如果使用样式表,页面逐步呈现就会被阻止,知道所有的样式表下载完成。
       这就是将样式表放在head中的原因。

规则6:将脚本放在底部
        使用脚本时,对于所有位于脚本一下的内容,逐步呈现都被阻塞了。将脚本放在页面越靠下的地方,意味着越多的内容能够逐步地呈现。

规则7:避免CSS动态表达式
        css表达式是动态设置CSS属性的一种强大(并且危险)的方式。

规则8:使用外部JavaScript和CSS
       单纯来讲,内联更快一些。但是外置能很好的支出组件重用。避免了统一组件的反复加载。

规则9:减少DNS查找
        使用keep-Alive通过重用现有连接避免了重复的DNS查找。

规则10:精简javaScript
        精简(Minification)是从代码中移除不必要的字符以减小其大小,进而改善加载时间的实践。         
        不但内联脚本可以精简,内联脚本也能精简。
        精简工具:JSMin
        精简CSS带来的节省通过小于精简javascript

规则11:避免重定向     

规则12:移除重复脚本
               在一个页面中两次包含同一个javascript和css文件会损伤性能。

规则13:配置ETag(实体标签)

规则14:使ajax可缓存

减少网络请求,减少HTTP响应的大小,html页面加载顺序,组件的缓存这些方面来提高页面响应的时间。

标签:脚本,web,前端,样式表,规则,组件,小结,页面
From: https://blog.51cto.com/u_15905482/5920093

相关文章

  • 使用cxf3.0.4搭建webservice服务需要的最精简jar包
        网上看了百度了好长时间,头都大了,还是没有把想要的最简jar包找到,不是jar仍然很多,就是jar包少了,导致报错。无奈之下,自己花了一个下午,采用用逆推法,总结了下cxf3.0.......
  • 前端 jQuery与Bootstrap
    jQuery查找标签//1.基本选择器$('#d1')id选择器$('.c1')class选择器$('div')标签选择器$("*")......
  • 前端之Bootstrap框架
    Bootstrap页面框架别人已经提前写好了一大堆css和js,我们只需要引入之后按照人家规定好的操作方式即可使用所有的样式和功能。 Bootstrap下载官网地址:https://v3.bootcs......
  • 进入python的世界_day47_前端——JQ补充、bootstrap前端框架
    一、jQuery补充​ 说在最前面,如果想把JQ对象赋值给一个变量名,起名字依旧要讲究,建议名字前加$,这样别人一看就知道是JQ对象1.筛选器//1.属性选择器$('username')//......
  • 前端开发 6 jQuery使用与Bootstrap
    今日内容详细目录今日内容详细jQuery查找标签1.基本选择器2.组合选择器3.层级选择器4.属性选择器5.基本筛选器6.表单筛选器7.筛选器方法操作标签jQuery事件事件相关补充jQ......
  • 前端框架 —— bootstrap介绍
    前端框架——bootstrap介绍bootstrap安装我们可以通过官网下载bootstrap的代码到本地,也可以通过CDN分发网络引入我们的html文件。下载到本地下载Bootstrap生产文件......
  • [BUUCTF][Web][SUCTF 2019]EasySQL 1
    这一题有点蛋疼,比较难顶看了别人的writeup也很难get到解题思路,感觉必须要拿到源码进行审计才能解大佬们猜后端是这么写的select$_POST['query']||flagfromFlag;......
  • 前端部分
    前端内容前端之HTML前端之CSS前端之JavaScript前端之BOM前端之DOM前端之jQuery类库前端之Bootstrap框架前端之Bootstrap框架重要知识......
  • [BUUCTF][Web][ACTF2020 新生赛]Exec 1
    打开靶机对应url显示可以输出ip来进行ping操作尝试试一下是否有命令注入的可能127.0.0.1|ls果然可以,输出结果index.phpPING127.0.0.1(127.0.0.1):56databytes......
  • jQuery使用 前端框架Bootstrap
    目录jQuery查找标签1.基本选择器2.组合选择器3.后代选择器4.属性选择器5.基本筛选器7.筛选器方法链式操作的本质操作标签1.class操作2.位置操作3.文本操作4.创建标签5.属性......