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

第七条规则:避免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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • outputstreamwriter用法_floating power object

    outputstreamwriter用法_floating power object写这个类的原因,网上有很多介绍这两个类的,InputStreamReader类的使用,没有任何异议,而OutputStreamWriter,看了网的帖子和博客说的都不是很清楚,所以小皮虾好好研究了一下OutputStreamWriter类,所以下面的总结有不对之处,欢迎指正!api类中解释:InputStreamReader是字节流通向字符流的桥梁,将字节流转换为字符流

    2022年9月3日
  • 分布式锁的场景以及实现方案_redis分布式锁使用场景

    分布式锁的场景以及实现方案_redis分布式锁使用场景分布式锁应用场景/实现方案

    2022年9月8日
  • python解析json文件并提取_python读取文件并判断

    python解析json文件并提取_python读取文件并判断使用python读取json和大数据量的json.gz文件

    2022年10月9日
  • 大数据学习方法:大数据采集,大数据分析,大数据存储就该这样学!

    大数据学习方法:大数据采集,大数据分析,大数据存储就该这样学!大数据采集01—概览02—相关延展系统日志数据的采集 Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用。它够从各种日志源上收集日志,存储到一个中央存储系统上,以便于进行集中的统计分析处理。Scribe为日志的“分布式收集,统一处理”提供了一个可扩展的、高容错的方案。(老师收学生信息表,需要班长代理收集的例子)。…

    2022年5月4日
  • java 唯一随机数_JAVA随机数

    java 唯一随机数_JAVA随机数每篇一句稍待秋风凉冷后,高寻白帝问真源。《望岳三首·其二》-唐代-杜甫获取随机数的方式经常使用的大概就下面5种①Math.random():获取随机小数范围:[0.0,1.0)返回的值是double类型②Random类构造方法:Random():建议使用无参构造方法方法:intnextInt(intn):获取[0,n)范围的随机整数③ThreadLocalRan…

    2022年7月26日
  • 发包工具isic安装详解[通俗易懂]

    发包工具isic安装详解[通俗易懂]
    gentoolinux2.6
    isic版本:0.07,下载连接http://www.sfr-fresh.com/unix/privat/isic-0.07.tgz/
    依赖库libnet(版本1.1.5)下载连接http://sourceforge.net/projects/libnet-dev/ 或者 http://sourceforge.net/projects/libnet-dev/files/libnet-1.1.5.tar.gz/download

    2022年9月5日

发表回复

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

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