深度瞭解Ajax技術

1.什麼是Ajax?

Ajax技術是使瀏覽器可以爲用戶提供更爲自然的瀏覽體驗

2.Ajax核心

Ajax的核心是JavaScript對象XmlHttpRequest

該對象在Internet Explorer 5中首次引入,它是一種支持異步請求的技術。簡而言之,XmlHttpRequest使用戶可以使用JavaScript向服務器提出請求並處理響應,而不阻塞用戶。

特點:無刷新局部更新數據,至2016年,各大網站幾乎都有使用。

3.Ajax的優勢與缺點

優勢:迅捷的反應速度

a.不需要插件支持

b.優秀的用戶體驗

c.提高Web程序性能

d.減輕服務器負擔

缺點:

a.XmlHttpRequest對象瀏覽器支持不足,早些年只有IE瀏覽器支持(現已解決)

b.破壞 瀏覽器的“前進”、“後退”按鈕的正常功能(現已解決)

c.對瀏覽器搜索引擎支持不足,無法搜索關鍵字(仍未解決)

d.開發和調試工具缺乏(仍未解決)webstorm可以

4.Ajax的應用

jQuery對Ajax進行了封裝,可用其方法

a.底層方法:$.ajax()       一般用這種方法,直觀快捷,二三層方法都是基於底層方法,需要調用底層方法

語法:$.ajax(options)     

options是key/value形式,均爲可選

示例:

$("#send").click(function(){

    $.ajax({

        type:"get",   //提交方式

        url:"test.asp", //地址

        success:function(){}    //執行成功的回調函數

        ......  //可以寫執行失敗的回調函數

    });

});

b.第二層方法:load() 、$.get()、$.post()      get和post方法只有提交方式不同,其餘一樣,默認get方法

load()方法   將遠程頁面的響應代碼插入DOM中

語法:load(url,[data],[callback])

url : 請求頁面的地址

data(可選):  發送到服務器的key/value數據

callback(可選): 請求完成時的回調函數(無論請求成功或者請求失敗)

注意:無參data時以get方式提交,有參data時以post方式提交

示例:

$(function(){

$("#send").click(function(){

$("#resTex").load("test.html");

});

});

$(function(){

    $("#send").click(function(){

    $("#resTex").load("test.html",{name:"xxx",age:"21"},)

    function(responseText,textStatus,XMLHttprequest){

        alert(responseText);     //請求訪問的內容

        alert(textStatus);      //請求的狀態(成功或失敗)

        alert(XMLHttprequest);   //XMLHttprequest對象

    };

    });

});

 

$.get( ) 方法和 $.post( ) 方法

語法:
$.get( url [, data] [,callback] [, type] )
$.post( url [, data] [, callback] [, type] )

url:請求頁面的 url

data(可選):發送到服務器的 key/value數據

callback(可選):請求完成時的回調函數(只有成功才被調用)

type(可選):返回內容的格式(text, html, xml, script, json)

示例;

$("#send").click(function(){     //$.get()方法

    $.get("AjaxHandler.ashx",

        {name: "張三", age:"21"},

        function (data, status) {

            $("#div").html(data);

        });

});

//$.post()方法

$("#send").click(function(){

    $.post("AjaxHandler.ashx",

        {name: "張三", age:"21"},

        function (data, status) {

            $("#div").html(data);

        });

});

c.第三層方法:$.getScript()、$getJSON()

 

 

$.getScript( ) 與 $.getJSON( ) 方法

$.getScript( ):動態引入JS文件

語法:
 $.getScript( JS文件的url ,[callback] )

 $.getJSON( ):加載JSON文件

  語法:
 $.getJSON( JSON文件url ,[callback] ) 

 

5.具體使用步驟

 

//1.創建XMLHttpRequest對象
var xhr = new XMLHttpRequest();

 
//2.初始化XMLHttpRequest xhr.open("post","data/data1.txt",true); true表示異步請求
//3.設置回調函數
xhr.onreadystatechange = function(){
    //readyState的值:0-未初始化,1-已初始化,2-已發送請求,還未接到響應,3-接到服務器響應數據,未完成,4-數據接收完成
    //HTTP響應狀態碼:2xx : 成功,3xx : 請求需要進一步細化,4xx : 客戶端錯誤,5xx : 服務器錯誤
    if(xhr.readyState==4 && xhr.status==200){
        document.getElementById("d1").innerHTML = xhr.responseText;
    }
};

 
//4.發送請求 xhr.send(null);

 

這裏順便推薦一個高質量的java公衆號,趕緊關注領取免費資料吧!

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章