网络编程
位置:首页>> 网络编程>> JavaScript>> 使用ajax开发的五大误区

使用ajax开发的五大误区

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

标签:ajax,服务器,javascript

今天在 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文件来解析它,这样比你用旧的解析方法可能更加有效。

服务器承担了太多了事情

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

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

0
投稿

猜你喜欢

  • 最近在着手支付宝个人版改版的项目,正好在一些国内知名的SNS网站上分别注册了帐户进行体验。显然一点,国内的SNS都带有Facebook的影子
  • char、varchar、text和nchar、nvarchar、ntext的区别1、CHAR。CHAR存储定长数据很方便,CHAR字段上的
  • 有时在项目中会遇到通过在页面中采用iframe的方式include其它页面,这时就会考虑不要因出现滚动条而影响页面效果,但include页面
  • 这是个老话题了,之所以再拿出来说,是因为浏览器一直在进步,以前最好的方法现在不一定是最好的。1 如何进行字符串连接?首先让我们来回顾一下字符
  • 随着现在宽屏显示器的流行,Flash的全屏模式下,越来越需要考虑到普屏显示器与宽屏显示器的差别。Flash全屏模式有以下特点:窗口最大化,且
  • 自己从工艺品设计到平面设计到网络设计,虽然设计原则不离其宗,但经验下来的心得告诉自己,设计媒介的变化带来很多媒介自身的特殊性,下面总结下网站
  • 代码如下:--相信大家肯定经常会把数据导入到数据库中,但是可能会有些记录行的所有列的数据是null,这为null的数据是我们不需要 --现在
  • 最近在用fso,读取txt文本文件的内容时碰到了“输入超出了文件尾 ”的运行错误,当txt中的内容为空的时候就出现这个问题了,查了
  • SQL的扩展的删除与恢复 删除 代码如下:use master exec spdropextendedproc “xpcmdshell“ e
  • 上文:栅格:从混乱到秩序Jacci Howard Bear 的英文原文:http://desktoppub.about.com/od/gri
  • sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 s
  • 编者注:当讲到了性能优化和案例方面的东西,就要想到如何从开发人员的角度进行了理解,认识SQL是如何执行,以及如何学习高级的SQL,这篇文章对
  • MySQL是一个非常流行的小型关系型数据库管理系统,2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中
  • 最近没事,写了个在项目经常要取城市或省份名的方法,所以改成了一个类.方便以后调用//****************************
  • 安装 SQL2000 时,系统经常会提示:操作被挂起,要求重新启动计算机,如图1: 图1重新启动后,再次安装时问题仍然存在。解决办
  • 有一台windows服务器上跑着mysql的一些应用,现在需要将mysql的数据每天备份,并通过ftp上传到指定的存储服务器上要是在linu
  • 引伸阅读解读absolute与relativeposition:relative/absolute无法冲破的等级定位一直是WEB标准应用中的
  • 有时候我们会在页面上显示用户的所在地区,这个原理是:先得到用户的IP,然后去查询将IP转换成一个数值,最后去查这个数值所在的范围,来得到用户
  • 今早打开 腾讯ISD的博客 ,看到一篇新的文章,《迷你屋视觉规范简介》,赶紧看了来学习。不过给我抓到问题咯,臭鱼不介意我在这说下吧:这套规范
  • 事务日志(Transaction logs)是数据库结构中非常重要但又经常被忽略的部分。由于它并不像数据库中的schema那样活跃,因此很少
手机版 网络编程 asp之家 www.aspxhome.com