Ajax几点认识

什么是 AJAX ?

AJAX = 异步 JavaScript 和 XML。
AJAX 是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

创建 XMLHttpRequest 对象的语法:

xmlhttp=new XMLHttpRequest();
老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象:
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.onreadystatechange=function() open(*method*,*url*,*async*)
规定请求的类型、URL 以及是否异步处理请求。
method:请求的类型;GET 或 POST
url:文件在服务器上的位置
async:true(异步)或 false(同步)

send(string)

将请求发送到服务器。
string:仅用于 POST 请求

xmlhttp.open("GET","demo_get.asp",true);
xmlhttp.send();
xmlhttp.open("GET","demo_get.asp?t=" + Math.random(),true);
xmlhttp.send();
xmlhttp.open("GET","demo_get2.asp?fname=Bill&lname=Gates",true);
xmlhttp.send();
xmlhttp.open("POST","demo_post.asp",true);
xmlhttp.send();

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

xmlhttp.open("POST","ajax_test.asp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Bill&lname=Gates");
setRequestHeader(header,value)`
向请求添加 HTTP 头。
header: 规定头的名称
value: 规定头的值

open() 方法的 url 参数是服务器上文件的地址:
xmlhttp.open("GET","ajax_test.asp",true);
该文件可以是任何类型的文件,比如 .txt.xml,或者服务器脚本文件,比如 .asp.php (在传回响应之前,能够在服务器上执行任务)。
xmlhttp.open("GET","/ajax/test1.txt",true);
>_<好想知道服务器的地址怎么写出来啊。。

对于async=false,是尽量不要使用吧,不过在一些小程序我试验的两者所表现出来的效果都是一样的
对于async=false情况下,JavaScript 会等到服务器响应就绪才继续执行。如果服务器繁忙或缓慢,应用程序会挂起或停止。
注释:当您使用 async=false时,请不要编写 onreadystatechange ,函数 把代码放在send()后面,

xmlhttp.open("GET","test1.txt",false);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

onreadystatechange 事件
当请求被发送到服务器时,我们需要执行一些基于响应的任务。
每当 readyState改变时,就会触发 onreadystatechange事件。
readyState 属性存有 XMLHttpRequest的状态信息。

属性 描述

onreadystatechange()存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
readyState
存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。

0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪

status

200: "OK"
404: 未找到页面
注释:onreadystatechange 事件被触发 5 次(0 - 4),对应着 readyState 的每个变化。
callback 函数是一种以参数形式传递给另一个函数的函数。
如果您的网站上存在多个 AJAX 任务,那么您应该为创建 XMLHttpRequest 对象编写一个标准的函数,并为每个 AJAX 任务调用该函数。

创建 XMLHttpRequest对象

当服务器响应就绪时执行函数
把请求发送到服务器上的文件
请注意我们向 URL 添加了一个参数 q (带有输入框的内容)
先添加参数,再发送。

 try {  // 此处是可能产生例外的语句  } 
 catch(error) {  // 此处是负责例外处理的语句  } 
 finally {  // 此处是出口语句  }

上述代码中,try块中的语句首先被执行。如果运行中发生了错误,控制就会转移到位于catch块中语句,其中括号中的error参数被作为例外变量传递。否则,catch块的语句被跳过不执行。无论是发生错误时catch块中的语句执行完毕,或者没有发生错误try块中的语句执行完毕,最后将执行finally块中的语句。
try catch函数主要是用于判断错误而不是真假,如1===2这样的语句在try中是回复正确的,另一方面是程序员在已知的情况下对网页兼容性不同所做出的不同做法。比如说

     try
    {// code for IE7+, Firefox, Chrome, Opera, Safari
   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(err)
    {// code for IE6, IE5
       xmlhttp=new XMLHttpRequest();
      }

摘自W3Cschool

你可能感兴趣的:(Ajax几点认识)