提高ajax响应速度,提高AJAX客户端响应速度.doc

本文作者包一磊分享了在AJAX开发中如何提高客户端响应速度的经验。指出问题通常源于不合理的界面设计和编程习惯,而非AJAX本身。建议包括:避免频繁的远程过程调用,尽可能使用异步方式;避免重量级操作在客户端执行,如大数据处理;优化DOM操作,例如改善创建表格的效率。通过实例展示了不同DOM操作方法的性能差异,强调了合理编程的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提高AJAX客户端响应速度

第 PAGE 6页 共 NUMPAGES 6页提高AJAX客户端响应速度(文:包一磊)AJAX的出现极大的改变了Web应用客户端的操作模式,它使的用户可以在全心工作时不必频繁的忍受那令人厌恶的页面刷新。理论上AJAX技术在很大的程度上可以减少用户操作的等待时间,同时节约网络上的数据流量。而然,实际情况却并不总是这样。用户时常会抱怨用了AJAX的系统响应速度反而降低了。笔者从事AJAX方面的研发多年,参与开发了目前国内较为成熟的AJAX平台-dorado。根据笔者的经验,导致这种结果的根本原因并不在AJAX。很多时候系统响应速度的降低都是由不够合理的界面设计和不够高效的编程习惯造成的。下面我们就来分析几个AJAX开发过程中需要时刻注意的环节。合理的使用客户端编程和远程过程调用。客户端的编程主要都是基于JavaScript的。而JavaScript是一种解释型的编程语言,它的运行效率相对于Java等都要稍逊一筹。同时JavaScript又是运行在浏览器这样一个严格受限的环境当中。因此开发人员对于哪些逻辑可以在客户端执行应该有一个清醒的认识。在实际的应用中究竟应该怎样使用客户端编程,这依赖于开发人员的经验判断。这里很多问题是只可意会的。由于篇幅有限,在这里我们大致归纳出下面这几个注意事项:尽可能避免频繁的使用远程过程调用,例如避免在循环体中使用远程过程调用。如果可能的话尽可能使用AJAX方式的远程过程调用(异步方式的远程过程调用)。避免将重量级的数据操作放置在客户端。例如:大批量的数据复制操作、需要通过大量的数据遍历完成的计算等。改进对DOM对象的操作方式。客户端的编程中,对DOM对象的操作往往是最容易占用CPU时间的。而对于DOM对象的操作,不同的编程方法之间的性能差异又往往是非常大的。以下是三段运行结果完全相同的代码,它们的作用是在网页中创建一个10x1000的表格。然而它们的运行速度却有着天壤之别。/* 测试代码1 - 耗时: 41秒*/var table = document.createElement("TABLE");document.body.appendChild(table);for(var i = 0; i < 1000; i++){ var row = table.insertRow(-1); for(var j = 0; j < 10; j++){ var cell = objRow.insertCell(-1); cell.innerText = "( " + i + " , " + j + " )"; }}/* 测试代码2 - 耗时: 7.6秒 */var table = document.getElementById("TABLE");document.body.appendChild(table);var tbody = document.createElement("TBODY");table.appendChild(tbody);for(var i = 0; i < 1000; i++){ var row = document.createElement("TR"); tbody.appendChild(row); for(var j = 0; j < 10; j++){ var cell = document.createElement("TD"); row.appendChild(cell); cell.innerText = "( " + i + " , " + j + " )"; }}/* 测试代码3 - 耗时: 1.26秒 */var tbody = document.createElement("TBODY");for(var i = 0; i < 1000; i++){ var row = document.createElement("TR");for(var j = 0; j < 10; j++){ var cell = document.createElement("TD"); cell.innerText = "( " + i + " , " + j + " )"; row.appendChild(cell); } tbody.appendChild(row);}var table = document.getElementById("TABLE");table.appendChild(tbody); document.body.appendChild(ta

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值