作者 Robert Bazinet译者 Frank Cheung 发布于 2008年1月16日 上午1时12分
Ajax甚是火爆,很多人能感受到。但你的Web2.0程序运行起来,却不见得如你想象中的那么理想。了解一些简单的优化技巧就能有所帮助。
最近在Mix 2007上,由领导Internet Explorer团队的资深程序经理Cyra Richardson发表了一篇名位《How-to Make your AJAX Applications Scream on the Client 》的报告,向开发者深入介绍提高客户端程序性能更好的种种途径。
报告阐述了在时下的环境中如何更好地改进AJAX应用程序的性能。尽管报告中所讨论的性能改进的方法集中在Internet Explorer上,但不管是哪种浏览器,这些指导方针都是可以遵循的。
这些优化技巧并不依赖于服务端或者嵌入代码所用的语言。所以,无论你在用的是C#、VB.NET写的ASP.NET技术,还是Java、RoR同样适用。
符号解析之优化
如何在迟绑定的环境下提速。讲述从变量到DOM本身的作用域之束缚,以及如何确保不受其拖累。
避免使用低效的JavaScript代码,这个原则适用于所有的浏览器平台,不止 Internet Explorer,FireFox、Safari和其他浏览器亦同样适用:
JavaScript代码低效的问题
要在浏览器中高效地操作字符串,建议:
- 使用局部变量;
- 从浏览器对象中缓存出字符串;
- 使用Array.join来连接字符串
其它的注意项:
- 如非必要勿用eval,以参数化的代码代之;
- SWITCH处理大集合时代价过高,考虑用放在try/catch中的哈希表来代替;
- WITH由于处处都需要进行符号查找,代价过高,推荐手工迭代的方式;
- 不需要自己写get/set访问器
浏览器执行性能的考虑
浏览器中DOM的使用是很昂贵的,特别是由于平台的泛型本质。另外值得注意布局上的改进,诸如悬浮CSS样式。
用一些简单的优化方法或常识性的手段,就可在HTTP的性能上得到明显的改善:
HTTP性能
简化和“痩身”:
- Script放在JS文件里面;
- 样式都放在一个CSS文件中;
- 更少,更小且无缩放的图片;
- 简化布局
- 采用HTTP压缩的手段(深入了解缓存的控制)
对于在Internet Explorer上开发或者是调试的开发者,有下列一些工具以备使用:
工具和技术
- Internet Explorer的Developer Toolbar
- Fiddler:HTTP流量监视
- Ajax View :MS研究院新项目:服务端在运行时改写JavaScript并插入调制代码(instrumentation code)
Web程序员常采用FireFox配合编写JavaScript,FireFox同样有不少的插件可用,包括:
虽然此次技术讨论是来自Internet Explorer团队的成员,但大部分技巧对任何浏览器都是有效的。JavaScript在不同浏览器平台上各有各的实现,不过这些调优方法是通用的。
查看英文原文:How-to Make your AJAX Applications Scream on the Client
译者简介:Frank Cheung有多年Web前端开发经验,动态语言爱好者。结合实际的工作,专注于Ajax和WebUI。可通过他的邮件frank[@]ajaxjs.com联系,讨论Javascript框架的问题。
分享到:
相关推荐
本卷侧重分析ASP.NET AJAX框架的客户端部分,包括对JavaScript 在面向对象、DOM 操作方面的扩展、ASP.NET AJAX 客户端组件、ASP.NET AJAX XML脚本等,还介绍了ASP.NET AJAX 框架为开发者在客户端用JavaScript 与...
在客户端AJAX中,主要涉及以下关键技术: 1. **JavaScript**:作为主要的编程语言,用于处理用户交互、创建异步请求和动态更新DOM(文档对象模型)。 2. **XMLHttpRequest**:这是一个浏览器内置的对象,使得...
《ASP.NET.AJAX程序设计.第II卷.客户端Microsoft.AJAX.Library与异步通信层》pdf版part2
5. **数据绑定**:在客户端,我们可以使用AJAX的DataSources控件与服务器上的数据源进行交互,实现客户端的数据绑定和过滤。 6. **调试和错误处理**:课程可能还会介绍如何使用Visual Studio或其他工具对AJAX应用...
本卷侧重分析ASP.NET AJAX框架的客户端部分,包括对JavaScript 在面向对象、DOM 操作方面的扩展、ASP.NET AJAX 客户端组件、ASP.NET AJAX XML脚本等,还介绍了ASP.NET AJAX 框架为开发者在客户端用JavaScript 与...
这样,资源文件的加载可以在客户端完成,减少服务器的压力,提高系统的运行效率。 五、结论 基于Ajax的胖客户端技术可以解决传统Web应用程序中的一些问题,如服务器压力大、网络带宽限制等。胖客户端解决方案可以...
你是否也想构建基于Web的在同一网页上运行所有功能的FTP客户端,聊天软件或全功能的电子邮件应用程序?首先,你要对AJAX技术有一个很好的了解,学习关于它的属性和方法,然后开发相应的后台和前端,最后非常希望你...
在学习这个教程的过程中,你不仅会掌握如何使用Ajax创建功能强大的Web应用程序,还会了解到即时通讯背后的机制,这对于开发Web聊天应用或者其他实时协作工具是非常有价值的。同时,Prototype库的使用也将加深你对...
ASP.NET.Ajax程序设计第2卷(客户端)
**jQuery AJAX 基础与应用** jQuery 是一个流行的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互。...通过深入研究这些代码,你可以掌握AJAX的基本用法,以及如何在实际项目中应用。
一个客户端的验证小程序ajax function Go() { //第一步 初始化 createXMLHttpRequest(); //第二步 取得表单中需要的数据 var newName =document.f3.uname.value; //第三步 建立要连接的URL并打开服务器的...
4. **Web Service调用**:ASP.NET AJAX支持通过AJAX调用Web服务(ASMX或WCF),使得在客户端可以直接与服务端逻辑进行交互。调用Web服务时,可以使用ScriptManager的RegisterWebMethod方法注册服务端的方法,然后在...
- 实现一个简单的聊天功能,用户可以在客户端发送消息,服务器端接收消息后广播给所有在线用户。 - 可以利用`ScriptManager`的`EnablePageMethods`属性来启用页面方法,使客户端能够直接调用服务端方法。 - **...
这部分内容不需要读者有任何的客户端开发知识,只要在Visual Stuio中轻松拖放即可实现强大的客户端Ajax功能,例如局部页面更新、异步回送、拖放、动画等,非常适合为现有的ASP.NET 2.0应用程序添加少量的Ajax特性,...
"一个基于js+AJAX实现的ToolTip AJAX Client Control客户端控件源码"这个标题揭示了我们讨论的核心技术:JavaScript、AJAX以及客户端控件开发。这里的ToolTip是一种常见的用户界面元素,通常在鼠标悬停时显示额外...
在深入客户端编程方面,课程会涉及如何使用Microsoft AJAX Library中的 Syndication 和 JSON 服务,这使得在客户端与服务器之间交换数据变得更加便捷。你还会学习到如何使用XMLHttpRequest对象进行Ajax请求,以及...
首先,Microsoft AJAX Library是ASP.NET AJAX的核心组成部分,它包含了一系列JavaScript库,这些库提供了与服务器端ASP.NET服务进行异步通信的能力,以及在客户端进行动态页面更新的工具。其中,最核心的类是`Sys`...
firefox 的 HttpRequester 测试单个协议比较简单的,但是一般自己的系统有几十个协议,这工具就不那么友好了。可以用 easyui 开发这么一个工具。easyui 可以到官网去下载。测试代码路径: jquery-easyui-1.5.2\demo\...
它通过JavaScript发送异步HTTP请求到服务器,获取数据后在客户端进行处理,然后动态更新页面。在"AJAX程序制做学籍管理"项目中,AJAX的主要作用是提高用户体验,用户可以在不离开当前页面的情况下,实时获取和更新...