Yahoo!网站性能最佳体验的34条黄金守则—内容(3)

作者:dudo 来源:dudo says 时间:2008-05-13 12:14:00 

4、可缓存的AJAX

 Ajax经常被提及的一个好处就是由于其从后台服务器传输信息的异步性而为用户带来的反馈的即时性。但是,使用Ajax并不能保证用户不会在等待异步的JavaScript和XML响应上花费时间。在很多应用中,用户是否需要等待响应取决于Ajax如何来使用。例如,在一个基于Web的Email客户端中,用户必须等待Ajax返回符合他们条件的邮件查询结果。记住一点,“异步”并不异味着“即时”,这很重要。

      为了提高性能,优化Ajax响应是很重要的。提高Ajxa性能的措施中最重要的方法就是使响应具有可缓存性,具体的讨论可以查看Add an Expires or a Cache-Control Header。其它的几条规则也同样适用于Ajax:
    Gizp压缩文件
    减少DNS查找次数
    精简JavaScript
    避免跳转
    配置ETags

     让我们来看一个例子:一个Web2.0的Email客户端会使用Ajax来自动完成对用户地址薄的下载。如果用户在上次使用过Email web应用程序后没有对地址薄作任何的修改,而且Ajax响应通过Expire或者Cacke-Control头来实现缓存,那么就可以直接从上一次的缓存中读取地址薄了。必须告知浏览器是使用缓存中的地址薄还是发送一个新的请求。这可以通过为读取地址薄的Ajax URL增加一个含有上次编辑时间的时间戳来实现,例如,&t=11900241612等。如果地址薄在上次下载后没有被编辑过,时间戳就不变,则从浏览器的缓存中加载从而减少了一次HTTP请求过程。如果用户修改过地址薄,时间戳就会用来确定新的URL和缓存响应并不匹配,浏览器就会重要请求更新地址薄。
        即使你的Ajxa响应是动态生成的,哪怕它只适用于一个用户,那么它也应该被缓存起来。这样做可以使你的Web2.0应用程序更加快捷。

5、推迟加载内容

 你可以仔细看一下你的网页,问问自己“哪些内容是页面呈现时所必需首先加载的?哪些内容和结构可以稍后再加载?

把整个过程按照onload事件分隔成两部分,JavaScript是一个理想的选择。例如,如果你有用于实现拖放和动画的JavaScript,那么它就以等待稍后加载,因为页面上的拖放元素是在初始化呈现之后才发生的。其它的例如隐藏部分的内容(用户操作之后才显现的内容)和处于折叠部分的图像也可以推迟加载

工具可以节省你的工作量:YUI Image Loader可以帮你推迟加载折叠部分的图片,YUI Get utility是包含JS和 CSS的便捷方法。比如你可以打开Firebug的Net选项卡看一下Yahoo的首页。

当性能目标和其它网站开发实践一致时就会相得益彰。这种情况下,通过程序提高网站性能的方法告诉我们,在支持JavaScript的情况下,可以先去除用户体验,不过这要保证你的网站在没有JavaScript也可以正常运行。在确定页面运行正常后,再加载脚本来实现如拖放和动画等更加花哨的效果。

标签:yahoo,性能,体验,内容
0
投稿

猜你喜欢

  • jQuery选择器 学习总结

    2008-06-15 15:41:00
  • 默认Web字体样式

    2009-11-24 12:37:00
  • AJAX缓存的问题解决办法

    2009-04-26 14:47:00
  • 静态页面分页的AJAX实现

    2008-01-19 16:19:00
  • SQL语句练习实例之三——平均销售等待时间

    2011-10-24 20:11:47
  • asp源码实现Access数据库的建立或压缩

    2007-08-06 16:54:00
  • sql server 中删除默认约束的通用sql脚本

    2009-02-01 17:23:00
  • Asp包含文件include动态包含方法(含变量)

    2010-01-14 20:12:00
  • 基于信息排序的信息理解

    2008-05-16 10:37:00
  • 纯CSS3透明水晶盒

    2011-08-24 20:20:06
  • 超长文章的智能分页-支持HTML

    2008-03-20 13:21:00
  • ASP连接MySQL数据库的方法

    2010-03-14 11:25:00
  • FSO组件之驱动器操作asp源码

    2010-05-03 10:59:00
  • Flash在web客户端的潜在问题

    2009-05-20 12:11:00
  • SQL学习笔记八 索引,表连接,子查询,ROW_NUMBER

    2011-09-30 11:18:24
  • 面向站长和网站管理员的Web缓存加速指南[翻译]

    2008-04-22 21:04:00
  • 去除DW MX 2004表格宽度辅助

    2010-09-02 12:37:00
  • 随机提取N条记录方法

    2007-10-11 18:04:00
  • asp三天学好ADO对象之第一天

    2008-10-09 12:46:00
  • MySQL数据库的临时文件究竟储存在哪里

    2009-02-13 13:44:00
  • asp之家 网络编程 m.aspxhome.com