`
兰迪RANDY
  • 浏览: 98749 次
文章分类
社区版块
存档分类
最新评论

[转载]第六章:把脚本放在底部 —《高性能网站建设指南》读书笔记

阅读更多
网上看到一篇读书笔记非常不错,这里贴出与大家分享,原文链接:
http://www.impng.com/web-dev/put-script-at-the-bottom-read-notes.html

一般浏览器对同一域下的资源只能保持两个并发下载。无法修改用户的浏览器设置来增加并行下载数,但可以将资源存放到多个域下,来保持更多的并行连接,缩短页面加载速度。简单的实现就是对域名做CNAME,Yahoo!的研究表明,使用两个域来加载资源效果是比较好的。

脚本会阻塞并行下载。在下载脚本时,并行下载是被禁用的,因为脚本加载完后,可能会对页面进行大面积的布局变动,浏览器会等待脚本加载完毕,减少布局的频繁变动带来的开销。同时,阻塞并行下载可以保证脚本的按顺序执行,避免有依赖关系的脚本执行次序的混乱引起的出错。

若将脚本放到页面的最顶部,若脚本加载速度较慢,则页面会呈现很明显的白屏。如下面的一个简单例子:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>js加载阻塞其他资源的加载
<script src="http://localhost/load_long_time.php" type="text/javascript">
</head>
 
<body>
<img src="http://www.impng.com/images/impng.jpg" />
</body>
</html>


然后在load_long_time.php文件内,加入简单的一个延迟语句即可:

sleep(10);  // 等待十秒


可以看到明显的白屏,需要等脚本加载完毕后,才会加载图片。

除了将脚本放到页面底部,还可以通过script标签的defer属性来避免,但需要酌情使用。属性defer指定脚本不用立即执行,而是等到页面全部加载完毕后执行。浏览器根据此属性会继续下面的加载和呈现,而不会阻塞加载。书中提到,defer在firefox中不支持,还是会阻塞并行下载和呈现,但是根据我的测试,在最新的Firefox版本(3.6.3)中,并不会阻塞下载和呈现。可以修改上面的例子来测试:

<script src="http://localhost/load_long_time.php" type="text/javascript" defer="defer">


摘自yzxchoice,使用defer属性时,需要注意:

    1. 不要在defer型的脚本程序段中调用document.write命令,因为document.write将产生直接输出效果。
    2. 不要在defer型脚本程序段中包括任何立即执行脚本要使用的全局变量或者函数。

文中举出在google ads的script加上defer属性后,导致页面内容一闪就没了的问题。

原文网址:http://www.impng.com/web-dev/put-script-at-the-bottom-read-notes.html
分享到:
评论

相关推荐

    高性能网站建设指南PDF版

    《高性能网站建设指南》是一本深度探讨如何提升网站性能和速度的专业书籍。这本书涵盖了从前端到后端,从HTML到CSS的全方位优化策略,旨在帮助开发者和网站管理员构建快速响应、用户体验优秀的网站。以下是对其中...

    [高性能网站建设指南——前端工程师技能精粹(英文原版)].pdf

    《高性能网站建设指南——前端工程师技能精粹》是前端开发领域的一本重要著作,它由Steve Souders撰写,旨在提供一套实用的策略和技巧,帮助网站优化性能,提高加载速度和用户体验。这本书不仅受到业界知名专家如Joe...

    高性能网站建设指南 高性能网站建设指南

    《高性能网站建设指南》是一本深度探讨如何构建高效、快速、响应迅速的网站的专业书籍。它涵盖了从基础架构到用户体验的各个层面,旨在帮助开发者和网站管理员优化网站性能,提升用户体验,降低服务器负担,并提高...

    高性能网站建设进阶

    本书是《高性能网站建设指南》姊妹篇。作者Steve Souders是前Google Web性能布道者和前Yahoo!首席性能工程师。在本书中Souders与8位专家分享了提升网站性能的实践和实用建议,主要包括:理解Ajax性能,编写高效的,...

    高性能网站 建设指南

    《高性能网站建设指南》这本书是针对互联网行业中如何构建高效、快速、可扩展的网站的一份重要参考资料。在当今数字化时代,网站的性能已经成为用户体验、搜索引擎优化(SEO)以及企业在线竞争力的关键因素。以下是...

    高性能网站建设指南-前端工程师技能精髓PDF

    《高性能网站建设指南-前端工程师技能精髓》是一本深入探讨如何构建高效、快速、优化的网站的书籍,尤其针对前端开发人员。这本书的核心是提升用户体验,通过优化网站性能,减少加载时间,提高页面响应速度,从而...

    《高性能网站建设指南》英文版

    《高性能网站建设指南》是一本备受推崇的英文版技术书籍,主要针对那些致力于提升网站性能的开发者和网站架构师。这本书深入探讨了如何通过各种优化策略和技术来提高网站的速度和效率,从而提供更好的用户体验并降低...

    《LINUX与UNIX SHELL编程指南》读书笔记

    在深入探讨《LINUX与UNIX SHELL编程指南》的读书笔记之前,让我们先理解一下Linux、Unix和Shell编程的基本概念。Linux是一种自由和开放源代码的类UNIX操作系统,而Unix则是其灵感来源,两者都广泛应用于服务器和工作...

    Shell脚本专家指南

    根据提供的信息,《Shell脚本专家指南》是一本深入讲解Shell脚本编程的书籍,适合中级到高级的Shell程序员以及需要解决日常问题的系统管理员阅读。本书不仅提供了实用的脚本和技巧,还深入探讨了Shell脚本编程的核心...

    linux运维学习笔记:Shell脚本书写规范.pdf

    Linux运维学习笔记:Shell脚本书写规范 Shell脚本是Linux系统中一种极为重要的工具,它能够帮助用户执行批量的命令操作,自动化日常运维任务。编写规范、易于理解的Shell脚本不仅有助于提高工作效率,而且方便日后...

    高级Bash脚本编程指南 源码

    《高级Bash脚本编程指南》是一本深入探讨Bash编程的资源,提供了丰富的示例和详尽的解释。以下是根据提供的压缩包文件名所涉及的一些核心知识点: 1. **数组操作**: - `array-append.bash`:Bash从4.0版本开始...

Global site tag (gtag.js) - Google Analytics