第一次使用ajax

时间:2022-05-23 16:57:31

今天终于把ajax搬到了自己的博客中,从开始听说ajax到现在第一次使用它,估计隔了一年多。

使用ajax的好处就是不刷新网页也能与后台进行交互,当然数据是小批量的。运用的场景有很多,比如百度搜索中的提示,博客中的留言功能等等。感觉就是用户体验非常好,我的博客中原来的留言功能提交后,是要重新加载网页的,本来服务器就是低配版,如果再刷一遍,代价很大啊。于是果断采用了传说中的ajax。下面是我参考的文档。

http://www.runoob.com/ajax/ajax-tutorial.html   菜鸟教程  特点 简洁  适合入门。在这里只记录几点注意事项。

1 ajax可以请求json,xml,txt等等静态文件,不一定要是php,java等等后台语言文件。

2 post和get什么时候使用

与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。然而,在以下情况中,请使用 POST 请求:

  • 无法使用缓存文件(更新服务器上的文件或数据库)
  • 向服务器发送大量数据(POST 没有数据量限制)
  • 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

3 如过在使用post请求时,如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据:

xmlhttp.open("POST","ajax_test.html",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");

 

4 get方式,为了避免得到的是缓存的结果,建议如下操作。

xmlhttp.open("GET","demo_get.html?t=" + Math.random(),true);
xmlhttp.send();

 

5 获得响应

responseText     获得字符串形式的响应数据。

responseXML     获得 XML 形式的响应数据。

如过获得是XML的数据,还要进行XML解析

6 如果存在多个 AJAX 任务,那么您应该为创建 XMLHttpRequest 对象编写一个标准的函数,并为每个 AJAX 任务调用该函数。

该函数调用应该包含 URL 以及发生 onreadystatechange 事件时执行的任务(每次调用可能不尽相同):

<!DOCTYPE html>
<html>
<head>
<script>
var xmlhttp;
function loadXMLDoc(url,cfunc)
{
if (window.XMLHttpRequest)
  {// IE7+, Firefox, Chrome, Opera, Safari 代码
  xmlhttp=new XMLHttpRequest();
  }
else
  {// IE6, IE5 代码
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=cfunc;
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
function myFunction()
{
loadXMLDoc("/try/ajax/ajax_info.txt",function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  });
}
</script>
</head>
<body>

<div id="myDiv"><h2>使用 AJAX 修改文本内容</h2></div>
<button type="button" onclick="myFunction()">修改内容</button>

</body>
</html>