当先锋百科网

首页 1 2 3 4 5 6 7

      AJAX是Asynchronous JavaScript And XML的缩写。在2005年,Google通过其Google Suggest使AJAX变得流行起来。

      AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。

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

AJAX应用的步骤:

   第一步:创建XMLHttpRequest对象,XMLHttpRequest 对象用于和服务器交换数据。

                  variable=new XMLHttpRequest();

                 variable=new ActiveXObject("Microsoft.XMLHTTP");//在IE5,IE6中使用

        在实际中我们考虑使用下面这种兼容的方式获取XMLHttpRequest对象

                 var xmlhttp;

                 if (window.XMLHttpRequest)        //除IE外的其他浏览器实现

                 {

                      xmlhttp=new XMLHttpRequest();  // code for IE7+, Firefox, Chrome, Opera, Safari

                 }

                else if (window. ActiveXObject)      // IE浏览器实现

               {

                 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");// code for IE5, IE6

              }

   第二步:注册回调函数

             xmlhttp.onreadystatechange=function()   //这种是内部匿名函数,也可以使用外部函数

            {

                if (xmlhttp.readyState==4 && xmlhttp.status==200)

               {

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

               }

           } 

          xmlhttp.readyState的值:

           •1: 服务器连接已建立

           •2: 请求已接收

           •3: 请求处理中

           •4: 请求已完成,且响应已就绪

         xmlhttp.Status的值

             • 200: "OK"

             • 404: 未找到页面

   第三步:设置连接信息

          xmlhttp.open(method,url,async)

           •method:请求的类型;GET 或 POST。

           •url:文件在服务器上url,如servlet。可以在此url后接参数以解决get方式无法传参

           •async:true(异步)或 false(同步)。如果将sync设置为false后回调函数便无意义了。

   第四步:发送请求数据到服务器

          xmlhttp.send()

             当时get方式时send方法中的参数只能是“null”或者什么都不写。

             当时post方式时send方法中的参数可以是String,当然也可以不传递参数。

   第五步:接受响应数据

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

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

                       responseXML 获得 XML 形式的响应数据

  

POST与GET方式的区别:

(1)  send()方法的参数是不一样的。

        当时“get”方式提交时send方法中的参数只能是“null”或者什么都不写。解决get传 参的问题可以在设置连接的时候在url后面加上参数。

        当时“post”方式提交时send方法中的参数可以是String,当然也可以不传递参数。也可以在设置连接的时候在url后面加上参数。当使用send方法传参时我们还要在发送之前加上以下一句话:

                xmlhttp.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded”)

          否则传递到服务器端的参数是null值。

(2)  浏览器的地址的区别

         Post提交时传递的参数是不会在地址栏上显示的

         Get提交时传递的参数会在地址栏上显示的。

(3)  提交的参数的信息量

         当向服务器发送大量数据时,POST 没有数据量限制,而get是有限制的。因为提交的参数会在浏览器地址栏中显示。