网上看到一篇读书笔记非常不错,这里贴出与大家分享,原文链接:
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
分享到:
相关推荐
高性能网站建设指南 “如果实现了Steve这些建议中的20%,你的站点就能出现戏剧性的变化。有了这本书和YSlow扩展,实在是没有理由再构建出运行速度缓慢的网站了。” ——Joe Hewitt,Firebu9调试器和Mozilla的DOM...
这两本指南——《高性能网站建设指南》和《高性能网站建设进阶指南:WEB开发者性能优化最佳实践》将为我们揭示解决这些问题的关键策略。 首先,我们来探讨《高性能网站建设指南》中的核心概念。这本书强调了“速度...
《高性能网站建设指南》是一本专注于优化网站前端性能的电子书,以PDF格式提供,旨在帮助开发者和网站管理员提升用户体验,降低服务器负担。本书的核心内容涵盖了多个关键领域,旨在通过科学的方法和技术来加速网页...
《高性能网站建设指南》是一本深度探讨如何构建高效、快速、响应迅速的网站的专业书籍。它涵盖了从基础架构到用户体验的各个层面,旨在帮助开发者和网站管理员优化网站性能,提升用户体验,降低服务器负担,并提高...
本书是《高性能网站建设指南》姊妹篇。作者Steve Souders是前Google Web性能布道者和前Yahoo!首席性能工程师。在本书中Souders与8位专家分享了提升网站性能的实践和实用建议,主要包括:理解Ajax性能,编写高效的,...
《高性能网站建设指南》这本书是针对互联网行业中如何构建高效、快速、可扩展的网站的一份重要参考资料。在当今数字化时代,网站的性能已经成为用户体验、搜索引擎优化(SEO)以及企业在线竞争力的关键因素。以下是...
### 高性能网站建设指南 #### 一、引言 在当今互联网时代,用户对网站的加载速度和响应时间有着越来越高的要求。一个快速且高效的网站不仅能够提升用户体验,还能提高搜索引擎排名,进而增加流量和转化率。Steve ...
《高性能网站建设指南-前端工程师技能精髓》是一本深入探讨如何构建高效、快速、优化的网站的书籍,尤其针对前端开发人员。这本书的核心是提升用户体验,通过优化网站性能,减少加载时间,提高页面响应速度,从而...
《高性能网站建设指南》是一本深度探讨如何构建高效、快速、响应迅速的Web站点的专业书籍。在当前互联网环境中,用户体验已经成为衡量网站成功与否的关键因素之一,而高性能的网站能够提供更流畅、更快捷的浏览体验...
《高性能网站建设指南》是 Yahoo 前端团队总结的一份宝贵经验,旨在提供一套实用的策略,帮助开发者创建快速响应、高效运行的网站。这份指南包含14条关键建议,涵盖了从网页设计到代码优化的各个方面。以下是这些...
Godot引擎开发:GDScript脚本编写_(10).动画和物理系统.docx Godot引擎开发:GDScript脚本编写_(11).用户界面开发.docx Godot引擎开发:GDScript脚本编写_(12).网络编程.docx Godot引擎开发:GDScript脚本编写...
### 内网安全攻防-渗透测试指南 读书笔记 #### 一、内网渗透测试基础 在进行内网渗透测试之前,理解Powershell执行策略及其如何影响脚本运行至关重要。 - **Powershell执行策略**:Powershell的安全执行策略通过...
在深入探讨《LINUX与UNIX SHELL编程指南》的读书笔记之前,让我们先理解一下Linux、Unix和Shell编程的基本概念。Linux是一种自由和开放源代码的类UNIX操作系统,而Unix则是其灵感来源,两者都广泛应用于服务器和工作...
根据提供的信息,《Shell脚本专家指南》是一本深入讲解Shell脚本编程的书籍,适合中级到高级的Shell程序员以及需要解决日常问题的系统管理员阅读。本书不仅提供了实用的脚本和技巧,还深入探讨了Shell脚本编程的核心...
《高级 Bash 脚本编程指南》是一本深入探讨shell脚本艺术的英文经典书籍,适合与中文版本对照阅读。作者Mendel Cooper通过电子邮件thegrendel.abs@gmail.com与读者交流。这本书的修订历史表明,它经过了多次更新和...