使用ajax开发的五大误区

作者:Satellite 来源:Satellite Of Love 时间:2008-09-03 12:46:00 

今天在 ajaxian 上看到一篇文章,名为 Five Ajax Anti-pattern ,觉得讲得比较有道理,现粗略翻译一下,加一些自己的使用感触:

不必要的计时器轮询

请注意timer的使用,虽然可以用它来监听用户的行为,但是一旦你的目标行为已经结束,它就将成为你程序的累赘。所以一定要记得清除计时器。

目前常用的计时器有两种,分别是setTimeout和setInterval()
setTimeout方法是定时程序,也就是在什么时间以后干什么。干完了就拉倒。
setInterval方法则是表示间隔一定时间反复执行某操作。

如果用setTimeout实现setInerval的功能,就需要在执行的程序中再定时调用自己才行。如果要清除计数器需要 根据使用的方法不同,调用不同的清除方法:
例如:tttt=setTimeout(’northsnow()’,1000);
clearTimeout(tttt);
或者:
tttt=setInterval(’northsnow()’,1000);
clearInteval(tttt);

回调函数不对返回值进行检查

很多人在写回调函数的条件语句时候只写xmlhttp.readyState == 4 && xmlhttp.status == 200,也就是说只对异步传输的传输状态进行判断以后就开始对XHR(xmlhttp.response结果)解析了,几乎不对XHR进行类型或其他方面的安全判断,这个习惯非常不好,并且用一些framework可以很轻易地做到这一点。

在某些时候传输HTML格式的服务器反馈可能比XML好,但还是固执地使用XML

“我不想使用HTML格式是因为我觉得那不是真正的AJAX”,很多人这样说,很明显,这样的完美主义没有任何益处,AJAX只是教你一种方法和思想,并不是教你一定要在传输的时候使用XML并且解析它,所以在某些时候,你是在浪费时间,尤其是我只想服务器返回true或者false的情况下。所以有时候你使用HTML的格式去直接改变元素的innerHTML这种方法是非常棒的。

在需要传输javascript code的时候传输xml数据(可能不太好理解,但是我没有找到更好的词:()

很多时候,你的xml数据文件里面可能会有很多用不着的数据,在这个时候你不如换一种parse的方法,也就是说重新传输一个相关的javascript文件来解析它,这样比你用旧的解析方法可能更加有效。

服务器承担了太多了事情

应该在服务器和客户端之前做到一个平衡,不必要的运算可以尽量留在客户端,而服务器用来全职吞吐所有必须的更新数据。

翻译得有些生涩,但还是希望对大家能有些借鉴意义。
请尽情拍砖。

标签:ajax,服务器,javascript
0
投稿

猜你喜欢

  • 取numpy数组的某几行某几列方法

    2022-03-10 02:04:56
  • python 点云地面点滤波-progressive TIN densification(PTD)算法介绍

    2023-05-26 17:50:55
  • python实现播放音频和录音功能示例代码

    2023-08-20 23:23:15
  • Python接口自动化之request请求封装源码分析

    2023-12-29 02:42:32
  • 基于Python实现傻瓜式GIF制作工具

    2023-03-13 18:39:44
  • PyQt5+serial模块实现一个串口小工具

    2021-04-25 00:51:19
  • python字符串替换第一个字符串的方法

    2021-08-16 13:55:47
  • 详解Python2.x中对Unicode编码的使用

    2022-12-01 10:58:04
  • vue自定义tap指令及tap事件的实现

    2024-05-09 09:25:15
  • SQL Server数据表字段自定义自增数据格式的方法

    2024-01-13 03:23:45
  • Python 将pdf转成图片的方法

    2021-11-14 09:16:33
  • 详解MySQL中的事务与ACID特性

    2024-01-14 21:59:38
  • W3C Group的JavaScript1.8新特性介绍

    2009-07-24 12:31:00
  • div、section、article 的区别

    2011-02-26 15:39:00
  • python图片验证码识别最新模块muggle_ocr的示例代码

    2021-03-28 11:49:26
  • Python input()函数案例教程

    2021-12-21 15:45:02
  • 利用pyinstaller或virtualenv将python程序打包详解

    2022-08-01 10:37:52
  • pytorch plt.savefig()的用法及保存路径

    2021-04-28 12:55:44
  • 网页禁用右键实现代码(JavaScript代码)

    2024-02-26 09:46:23
  • Python脚本实现网卡流量监控

    2022-11-27 11:36:51
  • asp之家 网络编程 m.aspxhome.com