web页面优化技巧
?
XHTML 1.0 Strict 与 Strict HTML 4.01 是等效的,包含的属性和元素没有出现在 HTML 4.01 规范的反对内容中。记住,有两个标记能够在 XHTML Transitional 中使用,但不能在 XHTML Strict 中使用,例如:
<center> <font> <iframe> <strike> <u> ?
?
?
?
?
要确定是否已安装 Gears,使用 清单 5 中的代码。
清单 5. 确定是否已安装 Gears
?
如果未安装 Gears,代码将向您提供下载 Gears 的 URL。
当所有元素都通过验证并且 Gears 已安装之后,您可以测试 Gears 的极其有用的数据库功能,使用 清单 6 中的 JavaScript 代码。
清单 6. 测试数据库功能
<script type="text/javascript"> var db = google.gears.factory.create('beta.db'); db.open('database-test'); db.execute('create table if not exists Test' + ' (Phrase text, Timestamp int)'); db.execute('insert into Test values (?, ?)', ['Monkey!', new Date().getTime()]); var rs = db.execute('select * from Test order by Timestamp desc'); while (rs.isValidRow()) { alert(rs.field(0) + '@' + rs.field(1)); rs.next(); } rs.close();</script>?
这段代码在您的计算机或服务器上创建一个本地数据库 db。如果表 Test 不存在,则创建一个,然后插入测试数据(Monkey! 和时间)。代码从数据库获取数据,并在浏览器中以警告的形式呈现出来。
想像一下可能发生的结果!
回页首
使用 PNG 格式的图像
Graphic Interchange Format (GIF) 和 Joint Photographic Experts Group (JPEG) 图像格式都已过时了:Portable Network Graphic (PNG) 是未来流行的格式。当然,您可以说 GIF 和 JPEG 已经消亡,或者 PNG 没有任何缺陷,但是所有事物都有各自的优缺点,PNG 以最佳的文件大小提供了出色的质量。因此,如果进行选择的话,应该尽可能使用 PNG 图像。
回页首
保持 Ajax 调用简短、准确
当统称为 Asynchronous JavaScript + XML (Ajax) 的技术在两年前出现时,这些技术为处理页面请求和响应提供了一种革命性方法。然而,拨号用户可能从来没机会体验其真正的优势,因为在许多情形下,Ajax 需要在浏览器与服务器之间大量通信。因此,如果您能够保持 Ajax 调用简短和准确,可以避免用户花费无止尽的时间来等待元素刷新或响应。
回页首
进行一次较大的 Ajax 调用并在本地处理客户机数据
如果不能进行简短的 Ajax 调用,或者如果这些调用不能提供期望的结果,可以考虑一种替代方法:进行一次大的 Ajax 调用来获取所需的一切内容,然后让客户机在本地处理数据。通过这种方式,客户机只需等待一次(获取传入的数据),但是在此之后(当浏览器与服务器之间没有必要通信时),处理速度将更快。当然,还有大量 Ajax 优化技术,本教程无法一一列出。如果想要了解关于 Ajax 的更多信息,请查看 参考资料。
在沙箱中测试代码
还有一个经常被遗忘的常用技巧。尽管清醒的 Web 开发人员通常会在启动应用程序之前对其进行测试,但是有时候测试会使他们不那么重视维护任务,或者新功能添加得太快,并且未经过充分考虑或测试。结果,余下的脚本减缓了应用程序的速度。
如果您添加一项新功能,可以首先在沙箱里(完全脱离了应用程序的其余部分)进行测试,查看它作为单个函数的行为。通过这种方式,您可以反复检查,并分析性能和响应时间,无需考虑 Web 应用程序的其余部分。然后,当新功能的行为符合预期时,可以将其引入到应用程序的其余部分中,运行其他测试,保证功能本身的行为符合预期。
回页首
分析站点代码
在许多场景中,自我反省是一个不错的建议。幸运的是,在开发过程中,我们可以使用工具来帮助反省,并尽可能客观地进行实践。像 JSLint(参见 参考资源)这样的工具的价值是无法衡量的,尽管其站点宣称它 “可能令您备受挫折”,因为它向您提供了所有的潜在代码缺陷,这些缺陷不但使调试更加困难,而且可能导致更长的响应时间。
回页首
使用 JSLint 检查 JavaScript 代码中的错误或糟糕的编码实践
您不需要像完美主义者那样追求完美无缺的 JavaScript 代码。但是,许多开发人员没有认真对待代码分析,通常在开发过程中跳过了这个步骤。不幸的是,错误和糟糕的编码实践不仅不太专业,而且可能减缓应用程序的速度。当浏览器忙于应付错误和糟糕的编码实践时,加载不仅需要更多时间,还会导致难以调试的错误。
因此,如果想要获得良好的代码,可以考虑使用代码分析工具。有许多不同的工具可供使用,但是最适合 JavaScript 语言的工具非 JavaScript Lint 莫属,它也叫做 JSLint(参见 参考资料)。也可以使用 Firebug,但是 JSLint 更加正式,它包含在 YSlow 中。
回页首
检查孤立的文件和丢失的图像
检查孤立的文件和丢失的图像是一种明智之举。大部分 Web 开发人员都会检查错误的文件引用,但是这里仍然需要说明一下。丢失的文件容易引起各种问题,因为它们会导致 “The image/page cannot be displayed” 之类的错误消息。但是在网页速度优化方面,它们具有更大的缺陷:当浏览器寻找丢失的或孤立的文件时,它会消耗资源,这不可避免地会导致页面处理速度变慢。因此,请检查孤立或丢失的文件,包括拼写错误的文件名。
回页首
YSlow 扩展
YSlow Firebug 扩展使主观的网页分析日渐被淘汰。YSlow 使用 Yahoo! 起草的面向高性能网站的权威规则,分析网页并告诉您它们变慢的原因。
回页首
使用 YSlow 分析网页
YSlow 是一个相对较小但非常有用的 Firefox 扩展。当启动 YSlow 时,该扩展在浏览器的下半部分中打开,如 图 4 所示。
图 4. Firefox 中的 YSlow 扩展?
图 4 显示了 Performance 视图,可以在其中看到 YSlow 如何评估您的网页的性能,还能够看到该扩展检测到的问题。单击列表中的一个链接将打开一个页面,其中解释了相应的错误。如果存在可以改进的页面组件,YSlow 会给出改进建议。
在 Inspect 视图中,如 图 5 所示,您可以逐一分析元素来剖析页面。Inspect 视图的一个最有用的功能是,当您在页面上移动鼠标指针时,它会自动刷新,因此您无需通过滚动代码内容来查找需要检查的行。
图 5. Firefox 中的 YSlow Inspect 视图
?
从 Stats 视图的名称可以猜测到,它(如 图 6 所示)显示与当前页面有关的统计数据。这些数据包括空的和主要的缓存和 cookie。
图 6. Firefox 中的 YSlow Stats 视图
?
Components 视图(如 图 7 所示)列出了当前页面上的组件。显示的与每个组件有关的数据包括文件类型和路径、页面过期时间以及 HTTP 响应报头。单击一个组件可以将其打开,以供查看。单击一个列标题可以按升序或降序对表进行排序。
图 7. YSlow Components 视图
?
YSlow 是一个较小的、有用的扩展,可以在提高页面加载速度方面为您提供许多帮助。如果您以前未使用过它,那么现在应该使用了。
回页首
结束语
优化网页的加载速度并不复杂。实际上,您通常可以轻而易举地实现速度优化。如果遵循本文中介绍的技巧以及 Web 开发最佳实践,那么无需采用其他措施就可以提高页面的加载速度。
将大量页面优化技巧收集到一起很简单,我希望本文的资源具有一定的价值。但是,如果您认为速度优化技巧只有这里列出的这些,那么您将惊奇地发现远远不止这些。但是,即使您仅遵循这 20 多个技巧,您的页面的加载速度也会更快,您的用户也会更惬意 —— 无论他们通过拨号还是专用的宽带上网。
?
?
?????????????????????????????????????? 注:from:http://www.ibm.com/developerworks/cn/web/wa-speedweb/?cmp=dwskl&cpb=dw&ct=dwcon&cr=cn_51CTO&ccy=cn