微软live.com所要解决的问题即是改进AJAX-enabled应用程序并创造一个好开端。
微软最近推出了一个beta AJAX 主页live.com。我感兴趣的是所有可以学习的一切,不仅包括改进live.com,也包括改进AJAX-enabled应用程序的课程内容。在这篇文章中,live.com团队成员Scott Isaacs将他们目前所解决的问题进行了剖析。在这里我将总结这些要点。这里发现的AJAX反模式,也同样适用于Java,.NET和其他环境。
1. 过度会话(Chatty communication).对不同种类分布式应用程序反模式长期考查,使得过度会话又一次出现了令人讨厌的面目。解决的方法是减少连接的数目,增加缓存和批处理请求。另一种办法是越过服务器分离资源,因为有些浏览器限制了域中只能有两个活动连接。
2.太多XML分解(XML parsing). XML是了不起的:它具有自描述性、可理解性和支持性能好等特点。但是现在浏览器提供的XML库的速度不够快。Scott报告说,他的机器花费400ms的时间来分析150K大小的XML文件,当要求在大约100ms内获得反馈时,这种时间开销显然太大。解决的方法是减小转化数据的量或者考虑换用另一种格式例如JSON格式。
3. 显示之前加载所有内容.大多数应用程序设计都是先加载所有代码,得到最初所有的内容,然后才考虑如何在屏幕上显示。如果不能很快加载所有内容(100-500ms),用户能明显感觉到应用程序速度很慢。解决方法是先加载那些需要在屏幕上显示内容,然后加载其它内容。Scott称之为“分段运输”而我称之为“懒惰加载”。
4. 渲染(Rendering)服务器.为了分离那些采用AJAX技术建立的客户端/服务器应用程序,必须确定分配多少任务给客户端程序分配多少任务给服务器程序。服务器程序更受信任,受到的约束更多,并且可以选择编程的语言和环境。客户端程序则比较脆弱且安全性较低,但是它更接近使用者。AJAX的要点是分配更多任务给客户端程序并且获得更多的交互体验。但是在加载页面时,服务器程序产生的页面加载更快些,考虑到这个反模式,应该向客户端程序分配较少的任务。
5.设计的思考.在传统开发中,体系构建需要花费大量的时间,因为a版本或多或少与b版本有些不同。在代码更新和将代码从字段中提取出来是非常困难的。“Web 2.0”意味着很多东西,但是它的主线是灵活开发。发布经常和更新容易是它的规则,所以应充分加以利用。
责任编辑:张琎