在我看来,AJAX最大的用处在于异步处理并支持更新部分网页。由于异步,网页可以向服务器端发出多个请求,并处理多个响应,并且由于可以支持更新部分网页,这使得看似是一个完整的网页其实是由多个部分组成,这种组合提供了更多的可能性。
以下是学习时的一些笔记:
1.AJAX 不是新的编程语言,而是一种使用现有标准的新方法
2.AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下
3.为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象。如果支持,则创建 XMLHttpRequest 对象。如果不支持,则创建 ActiveXObject :
4.AJAX - 向服务器发送请求请求,GET 还是 POST?
与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
然而,在以下情况中,请使用 POST 请求:
无法使用缓存文件(更新服务器上的文件或数据库)
向服务器发送大量数据(POST 没有数据量限制)
发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
5.一个简单的 GET 请求,可能得到的是缓存的结果。为了避免这种情况,请向 URL 添加一个唯一的 ID
6.如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定希望发送的数据
7.XMLHttpRequest 对象如果要用于 AJAX 的话,其 open() 方法的 async 参数必须设置为 true
不推荐使用 async=false,但是对于一些小型的请求,也是可以的。
请记住,使用 async=false,JavaScript 会等到服务器响应就绪才继续执行。如果服务器繁忙或缓慢,应用程序会挂起或停止。当使用 async=false 时,请不要编写 onreadystatechange 函数 - 把代码放到 send() 语句后面即可
8.注意: onreadystatechange 事件被触发 5 次(0 - 4),对应着 readyState 的每个变化。
9.如果网站上存在多个 AJAX 任务,那么应该为创建 XMLHttpRequest 对象编写一个标准的函数,并为每个 AJAX 任务调用该函数。该函数调用应该包含 URL 以及发生 onreadystatechange 事件时执行的任务(每次调用可能不尽相同)