`
Jatula
  • 浏览: 276809 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

怎么让你的Ajax程序在客户端上健步如飞

阅读更多

作者 Robert Bazinet译者 Frank Cheung 发布于 2008年1月16日 上午1时12分

社区 Ruby, .NET, Java 主题 Web 2.0

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 2.0 Ajax程序设计——第II卷:客户端Microsoft AJAX Library与异步通信层源代码

    本卷侧重分析ASP.NET AJAX框架的客户端部分,包括对JavaScript 在面向对象、DOM 操作方面的扩展、ASP.NET AJAX 客户端组件、ASP.NET AJAX XML脚本等,还介绍了ASP.NET AJAX 框架为开发者在客户端用JavaScript 与...

    客户端 ajax asp.net ajax

    在客户端AJAX中,主要涉及以下关键技术: 1. **JavaScript**:作为主要的编程语言,用于处理用户交互、创建异步请求和动态更新DOM(文档对象模型)。 2. **XMLHttpRequest**:这是一个浏览器内置的对象,使得...

    《ASP.NET.AJAX程序设计.第II卷.客户端Microsoft.AJAX.Library与异步通信层》pdf版part2

    《ASP.NET.AJAX程序设计.第II卷.客户端Microsoft.AJAX.Library与异步通信层》pdf版part2

    ASP.NET AJAX深入浅出系列课程(21):利用Microsoft AJAX Library开发客户端组建(上)

    5. **数据绑定**:在客户端,我们可以使用AJAX的DataSources控件与服务器上的数据源进行交互,实现客户端的数据绑定和过滤。 6. **调试和错误处理**:课程可能还会介绍如何使用Visual Studio或其他工具对AJAX应用...

    ASP.NET 2.0 Ajax程序设计——第II卷书中代码2

    本卷侧重分析ASP.NET AJAX框架的客户端部分,包括对JavaScript 在面向对象、DOM 操作方面的扩展、ASP.NET AJAX 客户端组件、ASP.NET AJAX XML脚本等,还介绍了ASP.NET AJAX 框架为开发者在客户端用JavaScript 与...

    基于Ajax的胖客户端技术的探讨及应用.pdf

    这样,资源文件的加载可以在客户端完成,减少服务器的压力,提高系统的运行效率。 五、结论 基于Ajax的胖客户端技术可以解决传统Web应用程序中的一些问题,如服务器压力大、网络带宽限制等。胖客户端解决方案可以...

    基于AJAX技术开发Web电子邮件客户端之UI篇

    你是否也想构建基于Web的在同一网页上运行所有功能的FTP客户端,聊天软件或全功能的电子邮件应用程序?首先,你要对AJAX技术有一个很好的了解,学习关于它的属性和方法,然后开发相应的后台和前端,最后非常希望你...

    创建基于 Ajax 的 IM 客户端

    在学习这个教程的过程中,你不仅会掌握如何使用Ajax创建功能强大的Web应用程序,还会了解到即时通讯背后的机制,这对于开发Web聊天应用或者其他实时协作工具是非常有价值的。同时,Prototype库的使用也将加深你对...

    ASP.NET.Ajax程序设计第2卷(客户端)

    ASP.NET.Ajax程序设计第2卷(客户端)

    jQuery-ajax示例含客户端和服务端源码(可运行

    **jQuery AJAX 基础与应用** jQuery 是一个流行的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互。...通过深入研究这些代码,你可以掌握AJAX的基本用法,以及如何在实际项目中应用。

    一个客户端的验证小程序ajax

    一个客户端的验证小程序ajax function Go() { //第一步 初始化 createXMLHttpRequest(); //第二步 取得表单中需要的数据 var newName =document.f3.uname.value; //第三步 建立要连接的URL并打开服务器的...

    ASP.NET Ajax客户端编程

    4. **Web Service调用**:ASP.NET AJAX支持通过AJAX调用Web服务(ASMX或WCF),使得在客户端可以直接与服务端逻辑进行交互。调用Web服务时,可以使用ScriptManager的RegisterWebMethod方法注册服务端的方法,然后在...

    ASP.NET3.5 AJAX客户端编程精选166例(使用C#)

    - 实现一个简单的聊天功能,用户可以在客户端发送消息,服务器端接收消息后广播给所有在线用户。 - 可以利用`ScriptManager`的`EnablePageMethods`属性来启用页面方法,使客户端能够直接调用服务端方法。 - **...

    ASP.NET AJAX程序设计——第I卷:服务器端ASP.NET 2.0 AJAX Extensions与ASP.NET AJAX Control Toolkit 源代码

    这部分内容不需要读者有任何的客户端开发知识,只要在Visual Stuio中轻松拖放即可实现强大的客户端Ajax功能,例如局部页面更新、异步回送、拖放、动画等,非常适合为现有的ASP.NET 2.0应用程序添加少量的Ajax特性,...

    提高AJAX客户端响应速度

    在提高AJAX客户端响应速度的过程中,有几个关键点需要开发者密切关注,以确保系统的高效运行和优化用户体验。首先,我们要理解AJAX(Asynchronous JavaScript and XML)的核心价值在于它能够实现页面的部分更新,...

    一个基于js+AJAX实现的ToolTip AJAX Client Control客户端控件源码

    "一个基于js+AJAX实现的ToolTip AJAX Client Control客户端控件源码"这个标题揭示了我们讨论的核心技术:JavaScript、AJAX以及客户端控件开发。这里的ToolTip是一种常见的用户界面元素,通常在鼠标悬停时显示额外...

    ASP.NET AJAX深入浅出系列课程(10):基于Microsoft AJAX Library扩展客户端组件

    在深入客户端编程方面,课程会涉及如何使用Microsoft AJAX Library中的 Syndication 和 JSON 服务,这使得在客户端与服务器之间交换数据变得更加便捷。你还会学习到如何使用XMLHttpRequest对象进行Ajax请求,以及...

    ASP.NET AJAX深入浅出系列课程(22):利用Microsoft AJAX Library开发客户端组件(中)

    首先,Microsoft AJAX Library是ASP.NET AJAX的核心组成部分,它包含了一系列JavaScript库,这些库提供了与服务器端ASP.NET服务进行异步通信的能力,以及在客户端进行动态页面更新的工具。其中,最核心的类是`Sys`...

    easyui ajax http 测试客户端

    firefox 的 HttpRequester 测试单个协议比较简单的,但是一般自己的系统有几十个协议,这工具就不那么友好了。可以用 easyui 开发这么一个工具。easyui 可以到官网去下载。测试代码路径: jquery-easyui-1.5.2\demo\...

    AJAX程序制做学籍管理

    它通过JavaScript发送异步HTTP请求到服务器,获取数据后在客户端进行处理,然后动态更新页面。在"AJAX程序制做学籍管理"项目中,AJAX的主要作用是提高用户体验,用户可以在不离开当前页面的情况下,实时获取和更新...

Global site tag (gtag.js) - Google Analytics