一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Jquery .ajax方法分析(一)

 明天網(wǎng)吧 2015-04-15

jQuery.ajax( options )

 

有很多選項(xiàng),介紹其中的幾個(gè):

·dataType:想從服務(wù)器得到哪種類型的數(shù)據(jù)。xml,html,script,json,jsonp,text

·success:請(qǐng)求成功后的處理函數(shù)

·type:以POSTGET的方式請(qǐng)求。默認(rèn)GET。PUTDELETE也可以用,但并不是所有的瀏覽器都支持

·url:請(qǐng)求的目的地址,須是一個(gè)字符串。

·complete:不管請(qǐng)求成功還是錯(cuò)誤,只要請(qǐng)求完成,可以執(zhí)行的事件。

·beforeSend:傳遞異步請(qǐng)求之前的事件。

 

這次說解,使用firedebug來配合說解。

(一)請(qǐng)求ashx文件,并添加ajax事件,添加緩沖提示

描述:請(qǐng)求數(shù)據(jù),請(qǐng)求超時(shí)時(shí)間設(shè)置為5秒,如果超時(shí),那么輸出超時(shí)提示,且在這5秒中的等待過程中,提供等圖標(biāo),5秒之后,提示請(qǐng)求超時(shí)。

1ashx文件

Customer customer = new Customer

{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };

        string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer);

        System.Threading.Thread.Sleep(1000*7);

        context.Response.Write(strJson);

為了讓客戶端請(qǐng)求超時(shí),服務(wù)設(shè)置延時(shí)7秒。

2ajax post請(qǐng)求

function ajax_ashx() {

    $.ajax({

        url: "webdata/ajax_1.ashx",

        type: "post",

        success: function(data) {

            var jsonObject = $.jsonToObject(data);

            var tt = '';

            $.each(jsonObject, function(k, v) {

                tt += k + "" + v + "<br/>";

            });

            $("#divmessage").html(tt);

        },

        cache: false,

        timeout: 5000,

        error: function() {

            alert("超時(shí)");

        }

    });}

設(shè)置超時(shí)時(shí)間5000ms,超時(shí)錯(cuò)誤出示超時(shí)錯(cuò)誤。

3)設(shè)置客戶端請(qǐng)求等待圖標(biāo)

·<img src="images/loader.gif" id="ajaximg" /> 找個(gè)小圖標(biāo)

·為這個(gè)圖標(biāo)設(shè)置ajax事件

$("#ajaximg").bind("ajaxSend", function() { Show(); });

    $("#ajaximg").bind("ajaxComplete", function() { Hide(); });

 

function Hide() {

    $("#ajaximg").hide();

}

function Show() {

    $("#ajaximg").show();

}

在客戶端5秒請(qǐng)求的時(shí)間限制下,請(qǐng)求超時(shí),提示超時(shí)錯(cuò)誤。

·ashxcontentType的設(shè)置對(duì)返回的數(shù)據(jù)沒有影響

·客戶端dataType也沒有影響,可以省略。

·firebug里可以看到返回的數(shù)據(jù)為:

{"Unid":1,"CustomerName":"宋江","Memo":"天魁星","Other":"黑三郎"}

所以可以按以前我說過的方法進(jìn)行解析。

(二)正常請(qǐng)求,并解析

·ashx

Customer customer = new Customer

{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };

        Customer customer2 = new Customer

{ Unid = 2, CustomerName = "吳用", Memo = "天機(jī)星", Other = "智多星" };

 

        List<Customer> _list = new List<Customer>();

        _list.Add(customer);

        _list.Add(customer2);

 

        string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer);

        System.Threading.Thread.Sleep(1000 * 3);

        context.Response.Write(strJson);

·ajax post

function ajax_ashxList() {

    $.ajax({

        url: "webdata/ajax_1.ashx",

        type: "post",

        dataType: "json",

        success: function(data) {

            var tt = '';

            $.each(data, function(k, v) {

            $.each(v, function(kk, vv) {

            tt += kk + "" + vv + "<br/>";

                });

            });

            $("#divmessage").html(tt);

        },

        cache: false,

        timeout: 5000,

        error: function() {

            alert("超時(shí)");

        }

    });

}

·dataType要是json

·firebug

[
{"Unid":1,"CustomerName":"宋江","Memo":"天魁星","Other":"黑三郎"},
{"Unid":2,"CustomerName":"吳用","Memo":"天機(jī)星","Other":"智多星"}

]

雖然是字串,但這里直接用就行,不用轉(zhuǎn)換為json對(duì)象。這一點(diǎn)我現(xiàn)在還不明白怎么回事。

(三)請(qǐng)求ws

這次請(qǐng)求返回字串類型的web方法。

1Hello

[WebMethod]

    public string HelloWorld()

    {

       return "Hello World";

    }

 

function ajax_webserviceHello() {

    $.ajax({

        type: "post",

        contentType: "application/json",

        url: "ajax_1.asmx/HelloWorld",

        data: "{}",

        dataType: 'json',

        success: function(data) {

            alert(data.d);

        }

    });

}

·contentType,data都不能為空,即使data為空,也要帶空參數(shù)

 

{"d":"Hello World"}

發(fā)現(xiàn)服務(wù)端請(qǐng)求到的數(shù)據(jù)是這樣的。所以,訪問時(shí),要以data.d來訪問。(在.net3.5中)。但也可以如下訪問:

$.each(data, function(k, v) {

                alert(v);

            });

 

2Customer

這次得到一個(gè)客戶實(shí)體

[WebMethod]

    public string GetCustomer()

    {

        Customer customer = new Customer { Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };

        string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer);

        return strJson;

}

 

function ajax_webserviceCustomer() {

    $.ajax({

        type: "post",

        contentType: "application/json",

        url: "ajax_1.asmx/GetCustomer",

        data: "{}",

        dataType: 'json',

        success: function(data) {

            var tt = '';

            var jsonObject = $.jsonToObject(data.d);

            $.each(jsonObject, function(k, v) {

                tt += k + "" + v + "<br/>";

            });

            $("#divmessage").html(tt);

        }

    });

}

發(fā)現(xiàn)返回的也是以dkey的一個(gè)object。

 

{"d":"{\"Unid\":1,\"CustomerName\":\"宋江\",\"Memo\":\"天魁星\",\"Other\":\"黑三郎\"}"}

這點(diǎn)應(yīng)該注意。

3customer list

[WebMethod]

    public string GetCustomerList()

    {

        Customer customer = new Customer

{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };

        Customer customer2 = new Customer

{ Unid = 2, CustomerName = "吳用", Memo = "天機(jī)星", Other = "智多星" };

 

        List<Customer> _list = new List<Customer>();

        _list.Add(customer);

        _list.Add(customer2);

 

        string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(_list);

        return strJson;

}

 

function ajax_webserviceCustomerList() {

    $.ajax({

        type: "post",

        contentType: "application/json",

        url: "ajax_1.asmx/GetCustomerList",

        data: "{}",

        dataType: 'json',

        success: function(data) {

            var tt = '';

            var jsonObject = $.jsonToObject(data.d);

            $.each(jsonObject, function(k, v) {

            $.each(v, function(kk, vv) {

            tt += kk + "" + vv + "<br/>";

                });

            });

            $("#divmessage").html(tt);

        }

    });

}

 

 

{
"d":
"[{\"Unid\":1,\"CustomerName\":\"宋江\",\"Memo\":\"天魁星\",\"Other\":\"黑三郎\"},
{\"Unid\":2,\"CustomerName\":\"吳用\",\"Memo\":\"天機(jī)星\",\"Other\":\"智多星\"}]"
}

這也是一個(gè)以dkey的對(duì)象。

4with para

[WebMethod]

    public string GetCustomerListWithPara(int iUnid)

    {

        Customer customer = new Customer

{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };

        Customer customer2 = new Customer

 { Unid = 2, CustomerName = "吳用", Memo = "天機(jī)星", Other = "智多星" };

 

        List<Customer> _list = new List<Customer>();

        _list.Add(customer);

        _list.Add(customer2);

 

        var cus = from q in _list

                  where q.Unid == iUnid

                  select q;

 

        string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(cus);

        return strJson;

    }

 

function ajax_webserviceCustomerListWithPara() {

    $.ajax({

        type: "post",

        contentType: "application/json",

        url: "ajax_1.asmx/GetCustomerListWithPara",

        data: "{iUnid:"+1+"}",

        dataType: 'json',

        success: function(data) {

            var tt = '';

            var jsonObject = $.jsonToObject(data.d);

            $.each(jsonObject, function(k, v) {

                $.each(v, function(kk, vv) {

                    tt += kk + "" + vv + "<br/>";

                });

            });

            $("#divmessage").html(tt);

        }

    });

}

 

{
"d":
"[{\"Unid\":1,\"CustomerName\":\"宋江\",\"Memo\":\"天魁星\",\"Other\":\"黑三郎\"}]"
}

這也是一個(gè)以dkey的對(duì)象。

綜上所述,在對(duì)web服務(wù)進(jìn)行請(qǐng)求時(shí):

·.net3.5中,訪問web服務(wù)時(shí),返回的元素是一個(gè)以dkeyk/v對(duì)。如果要進(jìn)行下一步解析,要認(rèn)識(shí)d屬性。(這是在當(dāng)web方法返回json字串時(shí)成立)

·.net3.5中,訪問web服務(wù),要對(duì)web服務(wù)添加修飾:[System.Web.Script.Services.ScriptService] 否則,當(dāng).ajax()請(qǐng)求服務(wù)時(shí),會(huì)有異常:

只能從腳本中調(diào)用在類定義上有[ScriptService]屬性的 Web 服務(wù)

 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    熟女少妇久久一区二区三区| 五月天丁香婷婷狠狠爱| 精品伊人久久大香线蕉综合| 黄片美女在线免费观看| 欧美精品激情视频一区| 亚洲熟妇中文字幕五十路| 欧美不卡一区二区在线视频| 国产一区二区三中文字幕 | 婷婷激情五月天丁香社区| 国产成人高清精品尤物| 有坂深雪中文字幕亚洲中文| 国产精品午夜福利在线观看| 国产日韩精品激情在线观看| 国自产拍偷拍福利精品图片| 麻豆看片麻豆免费视频| 人妻精品一区二区三区视频免精| 久久婷婷综合色拍亚洲| 黄片免费播放一区二区| 欧美日韩一级aa大片| 久久99精品国产麻豆婷婷洗澡| 欧美日韩亚洲巨色人妻| 尤物久久91欧美人禽亚洲| 久久亚洲国产视频三级黄| 欧洲日本亚洲一区二区| 国产精品超碰在线观看| 国产午夜福利在线观看精品| 伊人久久五月天综合网| 中文字幕乱码亚洲三区| 天海翼高清二区三区在线| 国产一级二级三级观看| 成人综合网视频在线观看| 中文字幕一区二区熟女| 日本国产欧美精品视频| 亚洲一区二区三区中文久久| 国产福利一区二区久久| 国产欧美日韩精品一区二| 亚洲国产91精品视频| 亚洲中文字幕乱码亚洲| 日韩精品一区二区亚洲| 91欧美日韩中在线视频| 大尺度激情福利视频在线观看|