使用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文件来解析它,这样比你用旧的解析方法可能更加有效。
服务器承担了太多了事情
应该在服务器和客户端之前做到一个平衡,不必要的运算可以尽量留在客户端,而服务器用来全职吞吐所有必须的更新数据。
翻译得有些生涩,但还是希望对大家能有些借鉴意义。
请尽情拍砖。
猜你喜欢
- 本文主要研究的是python将字典内容存入mysql,分享了实现代码,具体介绍如下。1.背景项目需要,用python实现了将字典内容存入本地
- 前言Scrapy是一个非常好的抓取框架,它不仅提供了一些开箱可用的基础组建,还能够根据自己的需求,进行强大的自定义。本文主要给大家介绍了关于
- Index.asp:程序代码<html><head><meta http-equiv="Conten
- 第一步:使用记事本打开mysql安装目录下的"my.ini”文件。# MySQL client library initializ
- 近期公司准备开发一个计费项目,数据库当然还是选用我最信赖的Oracle了。由于一部分基础数据在一台Win2000 Server的S
- 独立 fmt Log输出重定向golang的fmt包的输出函数 Println、Printf、PrintStack等,默认将打印输出到os.
- 概述从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类
- generator-vue-component可以快速生成自己的组件开发的脚手架,类似于vue-cli生成vue项目,这脚手架是目录结构是方
- 本文实例讲述了php7 参数、整形及字符串处理机制修改。分享给大家供大家参考,具体如下:参数处理机制修改一、重复参数命名不再支持。重复的参数
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&
- 一.怎样删除一个表中某个字段重复的列呀,举个例子 表[table1] id name 1 &nb
- 运行多进程 每个子进程的内存空间是互相隔离的 进程之间数据不能共享的互斥锁但是进程之间都是运行在一个操作系统上,进程之间数据不共享,但是共享
- 使用JS对Json数据的处理,项目遇到需要对Json数据进行相关操作,比如增删改操作,本以为会比较难,网上搜索下,发现还是比较简单的,贴一段
- “%”的使用格式符描述%s字符串 (采用str()的显示)%r字符串 (采用repr()的显示)%c
- Pycharm安装cv2 [python3.6]python解释器为Anaconda的3.6版本下载在这里选择对应的版本进行下载,其中参数分
- 2020年4月4日,是个特殊的日子,我们看到朋友圈很多灰化的图片.今天我们就聊聊图片灰度处理这事儿.PIL的基本概念:PIL中所涉及的基本概
- 在知识库的建立的时候,用普通VARCHAR2存放文章是显然不够的,只有区区4000的字节,放不了多少字, 而CLOB数据类型,则能最多存放8
- 可怜我的C盘本来只有8.XG,所以不得不卸载掉它。卸载掉本身没啥问题,只是昨晚突然发现 Sql Server 2008 R2 Managem
- 本文为大家分享了python3.5.1安装教程的具体步骤,供大家参考,具体内容如下首先,找到python下载的地址,如下图所示在这里我选择了
- 巧用get和set,能够直接操作对象属性实现读写,可以极大的提高编程效率,给出一个典型示例: var test = { _Name : nu