《Ajax基础教程》

来源:互联网 发布:114域名批量查询工具 编辑:程序博客网 时间:2024/05/04 01:24

创建XMLHttpRequest对象的一个实例(只需要检测浏览器是否支持ActiveX控件)
    var xmlHttp;
    function createXMLHttpRequest()
    {
        if(window.ActiveXObject)
        {
            xmlHttp = new ActiveXObject("Microsoft.XMLHttp");
        }
        else if(window.XMLHttpRequest)
        {
            xmlHttp = new XMLHttpRequest();
        }
    }

 

XMLHttpRequest不能请求脚本所在域之外的资源

 

XMLHttpRequest将请求发送给服务器
    XMLHttpRequest对象的send()方法把请求发送到指定的目标资源。send()方法接受一个参数,通常是一个串或一个DOM对象。这个参数作为请求体的一部分发送到目标URL。当向send()方法提供参数时,要确保open()中指定的方法是POST。如果没有数据作为请求体的一部分被发送,则使用null。

    一般情况下,使用Ajax提交的参数多是些简单的字符串,可以直接使用GET方法将要提交的参数写到open方法的url参数中,此时send方法的参数为null。

    例如 :
                 var url = "login.jsp?user=XXX&pwd=XXX";
                 xmlHttpRequest.open("GET",url,true);
                 xmlHttpRequset.send(null);
   
    此外,也可以使用send方法传递参数。使用send方法传递参数使用的是POST方法,需要设定Content-Type头信息,模拟HTTP POST方法发送一个表单,这样服务器才会知道如何处理上传的内容。参数的提交格式和GET方法中url的写法一样。设置头信息前必须先调用open方法。
   
    例如:
                xmlHttpRequest.open("POST","login.jsp",true);
                xmlHttpRequest.setRequestHeder("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
                xmlHttpRequest.send("user="+username+"&pwd="+password);
   
    需要注意的是根据提交方式的不同,两种提交方式分别调用后台的doGet方法和doPost方法。

 

在请求URL时加上时间戳的好处:
    在有些情况下某些浏览器会把XMLHttpRequest请求的结果缓存在同一个URL上.但是实际上虽然对相同URL的请求在不同时间也会有不同的结果.当把时间戳追加到URL的最后,就能够确保URL的唯一性,从而避免浏览器缓存结果.

 

利用XMLHttpRequest的post方法可以在请求体中发送各种内容(XML,二进制数据)

使用JSON来传输数据.JSON是一种文本格式,独立于具体语言,可以将数据结构进行序列化.


最佳实践:在客户端编写的每一个验证例程都必须在服务器上以某种方式重写,因为用户可能禁用javascript.

 

读取相应头部
    某些情况下我们只想读取服务器发出的响应首部,而忽略内容。,完成这样一个请求的标准做法是使用HEAD请求,而不是前面讨论的GET或POST请求。当服务器对HEAD请求做出响应时,它只发送响应首部而忽略内容,即使可以向浏览器返回所请求的内容,也不会真的把内容返回。由于忽略了内容,对HEAD请求的响应比对GET或POST的响应就小得多。
    通过读取响应首部,可以得出Content-Type(内容类型)、Content-Length
(内容长度),甚至Last-Modified(最后一次修改)的日期。
    实现方式:在Open的第一个参数设定为"HEAD".xmlHttp.open("HEAD",url,true);
    getAllResponseHeaders()方法的用途很有限,因为它把所有响应首部放在一起作为串返回。要想使用getAllResponseHeaders()方法来获取单个的响应首部,就需要解析返回的串,查找所关注的响应首部。
    getResponseHeader方法可以通过只返回一个响应首部的值解决这个问题。这个方
法取一个串参数,该参数表示所需响应首部的名字(就是你想得到这个响应首部
的值)。

 

火狐工具
    HTML Validator 查找并标志出HTML页面上的错误
    webdeveloper
    Greasemonkey
    Venkman
其他工具
    JSLint(网页) 完成JavaScript语法检查
    JSUnit(javascript单元测试) 用于测试JavaScript。

 

AJAX框架

    qooxdoo,jQuery,Mootools,Dojo,Ext JS

No1—Prototype
No2—Dojo
No3—Mootools
No4—JQuery
No5—Dwr
No6—Buffalo
No7—Yui
No8—Ext
No9—Qooxdoo
No10—Spry

 

谁是你心目中最优秀的Ajax框架?--CSDN专题