web前端性能优化小结

简介: 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页面加载顺序,组件的缓存这些方面来提高页面响应的时间。

目录
相关文章
|
6天前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
16 2
|
3天前
|
监控 前端开发 JavaScript
探索微前端架构:构建可扩展的现代Web应用
【10月更文挑战第29天】本文探讨了微前端架构的核心概念、优势及实施策略,通过将大型前端应用拆分为多个独立的微应用,提高开发效率、增强可维护性,并支持灵活的技术选型。实际案例包括Spotify和Zalando的成功应用。
|
5天前
|
缓存 前端开发 JavaScript
前端性能优化:Webpack与Babel的进阶配置与优化策略
【10月更文挑战第28天】在现代Web开发中,Webpack和Babel是不可或缺的工具,分别负责模块打包和ES6+代码转换。本文探讨了它们的进阶配置与优化策略,包括Webpack的代码压缩、缓存优化和代码分割,以及Babel的按需引入polyfill和目标浏览器设置。通过这些优化,可以显著提升应用的加载速度和运行效率,从而改善用户体验。
20 5
|
7天前
|
缓存 监控 前端开发
前端工程化:Webpack与Gulp的构建工具选择与配置优化
【10月更文挑战第26天】前端工程化是现代Web开发的重要趋势,通过将前端代码视为工程来管理,提高了开发效率和质量。本文详细对比了Webpack和Gulp两大主流构建工具的选择与配置优化,并提供了具体示例代码。Webpack擅长模块化打包和资源管理,而Gulp则在任务编写和自动化构建方面更具灵活性。两者各有优势,需根据项目需求进行选择和优化。
32 7
|
6天前
|
缓存 前端开发 JavaScript
前端工程化:Webpack与Gulp的构建工具选择与配置优化
【10月更文挑战第27天】在现代前端开发中,构建工具的选择对项目的效率和可维护性至关重要。本文比较了Webpack和Gulp两个流行的构建工具,介绍了它们的特点和适用场景,并提供了配置优化的最佳实践。Webpack适合大型模块化项目,Gulp则适用于快速自动化构建流程。通过合理的配置优化,可以显著提升构建效率和性能。
19 2
|
7天前
|
前端开发 JavaScript
Bootstrap Web 前端 UI 框架
Bootstrap 是快速开发 Web 应用程序的前端工具包。
21 3
|
7天前
|
前端开发 安全 应用服务中间件
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第26天】随着互联网的快速发展,前端性能调优成为开发者的重要任务。本文探讨了HTTP/2与HTTPS在前端性能优化中的应用,介绍了二进制分帧、多路复用和服务器推送等特性,并通过Nginx配置示例展示了如何启用HTTP/2和HTTPS,以提升Web应用的性能和安全性。
14 3
|
7天前
|
前端开发 JavaScript API
前端框架新探索:Svelte在构建高性能Web应用中的优势
【10月更文挑战第26天】近年来,前端技术飞速发展,Svelte凭借独特的编译时优化和简洁的API设计,成为构建高性能Web应用的优选。本文介绍Svelte的特点和优势,包括编译而非虚拟DOM、组件化开发、状态管理及响应式更新机制,并通过示例代码展示其使用方法。
21 2
|
8天前
|
开发框架 前端开发 JavaScript
Web前端框架
Web前端框架等名词
14 2
|
13天前
|
缓存 前端开发 JavaScript
前端性能优化:打造流畅用户体验的秘籍
【10月更文挑战第20天】前端性能优化:打造流畅用户体验的秘籍
27 3