独立站源码(高性能模式怎么开)

第七条规则:避免CSS表达式的应用。个人对CSS表达式缺少应用,所以没有直接体会,但是大概的意思就是使用CSS表达式进行页面样式进行修改时,可能会造成表达式的多次重复性运行,导致执行效率的降低。例如,使用CSS表达式调用javascript函数对DOM进行动态操作。第八条规则:使用外部Javascript和CSS。使用内联的Javascript和CSS文件确实可以提高文件的加载速度,应用减少了

大家好,又见面了,我是你们的朋友全栈君。

第七条规则:避免CSS表达式的应用。个人对CSS表达式缺少应用,所以没有直接体会,但是大概的意思就是使用CSS表达式进行页面样式进行修改时,可能会造成表达式的多次重复性运行,导致执行效率的降低。例如,使用CSS表达式调用javascript函数对DOM进行动态操作。

第八条规则:使用外部Javascript和CSS。使用内联的Javascript和CSS文件确实可以提高文件的加载速度,应用减少了HTTP请求,不需求并行加载。但是,使用外部Javascript和CSS文件可以利用缓存,较少网络传输。目前使用大量JS进行逻辑处理的项目很多,外部的js和CSS文件也提高了代码的复用率。当然,书中还是给出了同时使用内联和外部两种文件同时加载的方式,就是使用DOM操作动态重接link和scrip节点,并下载CSS文件和js文件,书中帮这种方式称为加载后下载(Post-Onload Download),我个人也曾用这种方式实现过对js文件的动态模块化加载。

第九条规则:减少DNS查找。有网址转换为确定的IP会经过浏览器和操作系统中对DNS的缓存,通过设置DNS缓存的存活时间(Time-To-Live,TTL)、http的keep-alIve,可以减少DNS的查找,提高请求响应效率。同时,使用keep-alive会计算content-length,对于不便于计算content-length的场景,keep-alive可能需要关闭。

第十条规则:精简JS文件。这点区别于压缩组件(规则四)的地方就是删除文件中的无用代码(注释、空白),书中提交了JSmin的使用。与精简对应的是混淆(书中提到DOJO Compressor),混淆会对代码的变量等进行替换,也可以起到精简的效果,但效果并不明显。混淆还会加大工作量(部署、调试),所以书中建议只精简不混淆。上一篇文件中提到了YUI Compressor,更确切一下应该是一个对js和css进行精简和混淆的工具。

第十一条规则:避免重定向。 书中给出了重定向对性能损害的介绍,并给出了部分重定向使用场景的替代方案,影响比较深刻的是使用referer跟踪出站的信息。

第十二条规则:移除重复脚本。重复脚本会增加http请求。

第十三条规则:配置ETag。ETag是If-Modified-Since的增强(If-Modified-Since只能精确到秒),会在http头中增加If-None-Match信息。但是,当在集群环境下ETag会导致缓存失效,因此需要根据实际情况开始或关闭ETag。

第十四条规则:使Ajax可缓存。GET方式的Ajax请求是可以缓存的,所以是适当的开启Ajax请求缓存,以减少http请求。如Extjs中在reque方式中配置disableCaching : false,就可以缓存get方式的ajax请求。

第十五章中对多个网站的前端性能进行评测,介绍了YSlow工具,可以集成到firebug中,当然你也可以选择谷歌的PageSpeed。

除了以上四条规则,雅虎还有更丰富的前端优化规则。(这本书的作者也是雅虎的工程师。)

总结:个人觉得,压缩、精简、缓存这三个方面的应用对于自己中非专业的前端非常重要,也更便于实施,其中缓存尤其重要。使用缓存,需要理解http中相关的header、相应指令的含义、缓存过程中的逻辑处理过程、浏览器对缓存影响(如F5、CRTL+F5、地址栏回车、后退等)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129139.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用idea搭建springboot项目_springboot入门项目

    用idea搭建springboot项目_springboot入门项目Idea搭建springboot项目

    2022年9月12日
    0
  • One Piece1-541(ed2k)[通俗易懂]

    One Piece1-541(ed2k)[通俗易懂]1-143http://www.VeryCD.com/topics/143292/144-228http://www.VeryCD.com/topics/17082/229-325http://www.VeryCD.com/topics/39594/326-384http://www.VeryCD.com/topics/198051/385-458ht

    2022年10月19日
    0
  • hisi3516dv300学习笔记——编译hisi3516dv300的SDK

    hisi3516dv300学习笔记——编译hisi3516dv300的SDK先下载linux内核源码包,下载地址:https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/(1)编译整个osdrv目录:注意:默认不发布内核源码包,只发布补丁文件。内核源码包需自行从开源社区上下载。从linux开源社区下载v4.9.37版本的内核:1)进入网站:www.kernel.org2)选择HTTP协议资源的https://www.kernel.org/pub/选项,进入子页面3)选择linux/菜单项,进入子页面4)选择ker

    2022年9月23日
    0
  • 查看redis版本命令_redis如何使用

    查看redis版本命令_redis如何使用Centos7查看redis版本redis安装成功后,查看redis版本命令:redis-server-V即可查看redis版本实际我们查看时都会遇到这个问题:redis-cli:commandnotfound(其实就和window电脑命令提示行中提示的:不是内部命令一个意思,配置环境变量即可使用)以上问题其实就是说明redis-server-V不是linux的全局命令,只需要我们做个软链接即可(类似于win电脑中的环境变量)软链接命令:ln-s/home/redis

    2022年10月8日
    0
  • 共享计算机没有响应,网络共享打印机出现联机无反应的处理方法

    共享计算机没有响应,网络共享打印机出现联机无反应的处理方法网络共享打印机出现联机无反应、打印乱码及无法连接共享打印机的故障处理方法1、共享打印出现乱码倘若从局域网中某一台工作站中执行共享打印操作时,网络打印机能够正常工作;而从另外一台工作站中执行共享打印操作时,网络打印机打印出来的内容全部是乱码,遇到这种故障时你该如何快速排除呢?从上面的故障现象来看,大家可以知道共享打印机在硬件方面以及网络连接方面都应该是正常的,毕竟有计算机能够通过网络正常进行打印材料…

    2022年6月5日
    142
  • 您的CPU支持该TensorFlow二进制文件未编译为使用的指令:AVX AVX2[通俗易懂]

    您的CPU支持该TensorFlow二进制文件未编译为使用的指令:AVX AVX2[通俗易懂]IamnewtoTensorFlow.我是TensorFlow的新手。Ihaverecentlyinstalledit(WindowsCPUversion)andrec

    2022年5月17日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号