ajax所学所用总结(w3c的ajax教程学习,jquery1.7中文手册学习——ajax请求)

第一次接触ajax是w3c的ajax教程。那是2014年暑假的事情了,当时是为了做一个页面局部数据刷新用的。

下面引用一个它们的例子简单的总结下~(源码出自w3c)

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

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

</body>
</html>
            

实现的效果是:点击修改内容按钮之后:

 大概具体思路本人理解的就是:

(1)创建 XMLHttpRequest 对象用于和服务器交换数据

所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。

XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

(2)使用 XMLHttpRequest 对象的 open() 和 send() 方法,将请求发送到服务器。

GET 还是 POST?

与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。

然而,在以下情况中,请使用 POST 请求:

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

url - 服务器上的文件

open() 方法的 url 参数是服务器上文件的地址

该文件可以是任何类型的文件,比如 .txt 和 .xml,或者服务器脚本文件,比如 .asp 和 .php (在传回响应之前,能够在服务器上执行任务)。

异步 - True 或 False?

AJAX 指的是异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。

XMLHttpRequest 对象如果要用于 AJAX 的话,其 open() 方法的 async 参数必须设置为 true:

(3)使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性获得来自服务器的响应。

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

代码实例:

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

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

代码实例:

xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
  {
  txt=txt + x[i].childNodes[0].nodeValue + "<br>";
  }
document.getElementById("myDiv").innerHTML=txt;

(4)onreadystatechange 事件

当请求被发送到服务器时,我们需要执行一些基于响应的任务。

每当 readyState 改变时,就会触发 onreadystatechange 事件。

readyState 属性存有 XMLHttpRequest 的状态信息。

下面是 XMLHttpRequest 对象的三个重要的属性:

在 onreadystatechange 事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。

当 readyState 等于 4 且状态为 200 时,表示响应已就绪:

实例:xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }

注意: onreadystatechange 事件被触发 5 次(0 - 4),对应着 readyState 的每个变化。

第二次接触ajax是大三上学期做另外一个项目时,这次参考jquery1.7中文手册,使用了里面的ajax请求,包括:jQuery.ajax(url,[settings])和jQuery.getJSON(url, [data], [callback]):

具体例子 如下详情还得参考手册(手册下载地址:http://pan.baidu.com/s/1jG462sm):

(1)$.ajax()。

$.ajax({
                url : '请求文件位置',
                type : 'get',
                dataType : 'json',
                error : function() {
                   // [错误提示]
                },
                success : function(responseResult) {

      //请求成功,responseResult为请求返回的json对象。

}});

 

(2)$.getJSON()。

$.getJSON(
    "url",
    function(data) {
       $("#id").XX(data.属性名称);
    }
);

 

posted @ 2015-02-25 20:47  Enast  阅读(296)  评论(0编辑  收藏  举报