900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > jQuery学习笔记:Ajax(二)

jQuery学习笔记:Ajax(二)

时间:2019-06-26 21:12:45

相关推荐

jQuery学习笔记:Ajax(二)

接上篇“jQuery学习笔记:Ajax(一)”。

3、jQuery.get(url,[data],[callback],[type])

通过远程 HTTP GET 请求载入信息。

这是一个简单的 GET 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。

返回值 XMLHttpRequest

参数

url (String) : 待载入页面的URL地址

data (Map) : (可选) 待发送 Key/value 参数。

callback (Function) : (可选) 载入成功时回调函数。

type (String) : (可选) 返回内容格式,xml, html, script, json, text, _default。

示例

Code

functionjqAjaxTest(){

varjqRequestUrl="AjaxHandler.ashx";

$.get(jqRequestUrl+"?action=jquery",{userName:"jeffwong",location:"beijing"},jqGetNormalCallBack,'text');//返回数据类型

}

functionjqGetNormalCallBack(oData){

$("#spanResult").html(oData);//这里直接json数据绑定了,下一个jquery方法会有处理

$("#spanResult").css("display","block");

$("#spanResult").css("color","red");

}

AjaxHandler.ashx代码:

Code

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Web;

usingSystem.Web.SessionState;

usingSystem.Xml;

namespaceMyJQTest

{

publicclassAjaxHandler:IHttpHandler,IRequiresSessionState

{

///<summary>

///可复用

///</summary>

publicboolIsReusable

{

get

{

returntrue;

}

}

publicvoidProcessRequest(HttpContextcontext)

{

AjaxOperations(context);

}

privatevoidAjaxOperations(HttpContextcontext)

{

stringaction=context.Request["action"];

if(!string.IsNullOrEmpty(action))

{

switch(action)

{

default:

break;

case"jquery":

ProcessJQueryRequest(context);

break;

}

}

}

privatevoidProcessJQueryRequest(HttpContextcontext)

{

context.Response.ClearContent();

context.Response.ContentType="text/plain";//设置输出流类型

context.Response.Cache.SetCacheability(HttpCacheability.NoCache);//没有缓存

stringuserName=context.Request["userName"].Trim();

stringlocation=context.Request["location"].Trim();

stringjsonObject="{\"userName\":\""+userName+"\",\"location\":\""+location+"\"}";

context.Response.Write(jsonObject);

}

}

}

ps:本例中,我们返回的是一段json类型的数据,在客户端没有对json类型数据进行处理,在下一个方法(jQuery.getJSON)中会改进处理的。

4、jQuery.getJSON(url,[data],[callback])

通过 HTTP GET 请求载入 JSON 数据。

在 jQuery 1.2 中,您可以通过使用JSONP 形式的回调函数来加载其他网域的JSON数据,如 "myurl?callback=?"。jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

注意:此行以后的代码将在这个回调函数执行前执行。

返回值 XMLHttpRequest

参数

url (String) : 发送请求地址。

data (Map) : (可选) 待发送 Key/value 参数。

callback (Function) : (可选) 载入成功时回调函数。

示例

Code

functionjqAjaxTest(){

varjqRequestUrl="AjaxHandler.ashx";

//getJSON方法调用

$.getJSON(jqRequestUrl+"?action=jquery",{userName:"jeffwong",location:"beijing"},jqGetJsonCallBack);//返回json数据类型

}

//对json数据进行处理(oData是json类型的数据)

functionjqGetJsonCallBack(oData){

varoJsonStr="";

//取json中的数据,并呈现

oJsonStr+="userName:"+oData.userName+"&nbsp;&nbsp;location:"+oData.location+"<br/>";

//在div中显示所有数据

$("#divResult").html(oJsonStr);

$("#divResult").css("display","block");

$("#divResult").css("color","red");

}

5、jQuery.getScript(url,[callback])

通过 HTTP GET 请求载入并执行一个 JavaScript 文件。

jQuery 1.2 版本之前,getScript 只能调用同域 JS 文件。 1.2中,您可以跨域调用 JavaScript 文件。注意:Safari 2 或更早的版本不能在全局作用域中同步执行脚本。如果通过 getScript 加入脚本,请加入延时函数。

返回值 XMLHttpRequest

参数

url (String) : 待载入 JS 文件地址。

callback (Function) : (可选) 成功载入后回调函数。

示例

Code

functionjqAjaxTest(){

varjsUrl="js/jqLoadJs.js";

//getScript方法调用

$.getScript(jsUrl,jqGetJsCallBack);

}

//oData返回的是整个js路径下js文件内容

functionjqGetJsCallBack(oData){

alert(oData);

}

6、jQuery.post(url,[data],[callback],[type])

通过远程 HTTP POST 请求载入信息。

这是一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。

返回值 XMLHttpRequest

参数

url (String) : 发送请求地址。

data (Map) : (可选) 待发送 Key/value 参数。

callback (Function) : (可选) 发送成功时回调函数。

type (String) : (可选) 返回内容格式,xml, html, script, json, text, _default。

示例

Code

functionjqAjaxTest(){

varjqRequestUrl="AjaxHandler.ashx";

$.post(jqRequestUrl+"?action=jquery",{userName:"jeffwong",location:"beijing"},jqPostCallBack,"text");//返回text数据类型

}

functionjqPostCallBack(oData){

//在div中显示所有数据

$("#divResult").html(oData);

$("#divResult").css("display","block");

$("#divResult").css("color","red");

}

二、Ajax事件

1、ajaxComplete(callback)

AJAX 请求完成时执行函数。Ajax 事件。

XMLHttpRequest 对象和设置作为参数传递给回调函数。

返回值 jQuery

参数

callback (Function) : 待执行函数

示例

Code

functionjqAjaxTest(){

varjqRequestUrl="AjaxHandler.ashx";

$.post(jqRequestUrl+"?action=jquery",{userName:"jeffwong",location:"beijing"},jqPostCallBack,"text");//返回text数据类型

//AJAX请求完成时执行函数

$("#divResult").ajaxComplete(function(event,request,settings){

$(this).append("<br/>请求完成.");

});

}

functionjqPostCallBack(oData){

//在div中显示所有数据

$("#divResult").html(oData);

$("#divResult").css("display","block");

$("#divResult").css("color","red");

}

2、ajaxError(callback)

AJAX 请求发生错误时执行函数。Ajax 事件。

XMLHttpRequest 对象和设置作为参数传递给回调函数。捕捉到的错误可作为最后一个参数传递。

返回值 jQuery

参数

callback (Function) : 待执行函数

function (event, XMLHttpRequest, ajaxOptions, thrownError) {

// thrownError 只有当异常发生时才会被传递

this; // 监听的 dom 元素

}

示例

Code

functionjqAjaxTest(){

varjqRequestUrl="AjaxHandlers.ashx";//正确的文件名AjaxHandler.ashx这里故意写错引发ajaxError事件

$.post(jqRequestUrl+"?action=jquery",{userName:"jeffwong",location:"beijing"},jqPostCallBack,"text");

}

//AJAX请求发生错误时执行函数(这一段放在jqAjaxTest函数内也可以)

$("#divResult").ajaxError(function(event,request,settings){

$("#divResult").css("display","block");

$("#divResult").css("color","red");

$(this).append("<br/>出错页面:"+settings.url);

});

functionjqPostCallBack(oData){

//在div中显示所有数据

$("#divResult").html(oData);

$("#divResult").css("display","block");

$("#divResult").css("color","red");

}

3、ajaxSend(callback)

AJAX 请求发送前执行函数。Ajax 事件。

XMLHttpRequest 对象和设置作为参数传递给回调函数。

返回值 jQuery

参数

callback (Function) : 待执行函数

示例

Code

functionjqAjaxTest(){

varjqRequestUrl="AjaxHandler.ashx";

$.post(jqRequestUrl+"?action=jquery",{userName:"jeffwong",location:"beijing"},jqPostCallBack,"text");

}

//AJAX请求发送前执行函数

$("#divResult").ajaxSend(function(evt,request,settings){

$("#divResult").css("display","block");

$("#divResult").css("color","red");

$(this).append("<br/>开始请求:"+settings.url+"<br/>");

});

functionjqPostCallBack(oData){

//在div中显示所有数据

$("#divResult").append(oData);

$("#divResult").css("display","block");

$("#divResult").css("color","red");

}

4、ajaxStart(callback)

AJAX 请求开始时执行函数。Ajax 事件。

返回值 jQuery

参数

callback (Function) : 待执行函数

示例

Code

functionjqAjaxTest(){

varjqRequestUrl="AjaxHandler.ashx";

$.post(jqRequestUrl+"?action=jquery",{userName:"jeffwong",location:"beijing"},jqPostCallBack,"text");

}

//AJAX请求开始时执行函数

$("#divResult").ajaxStart(function(){

$("#divResult").css("display","block");

$("#divResult").css("color","red");

$(this).append("<br/>请求开始了<br/>");

});

functionjqPostCallBack(oData){

//在div中显示所有数据

$("#divResult").append(oData);

$("#divResult").css("display","block");

$("#divResult").css("color","red");

}

5、ajaxStop(callback)

AJAX 请求结束时执行函数。Ajax 事件。

返回值 jQuery

参数

callback (Function) : 待执行函数

示例

Code

functionjqAjaxTest(){

varjqRequestUrl="AjaxHandler.ashx";

$.post(jqRequestUrl+"?action=jquery",{userName:"jeffwong",location:"beijing"},jqPostCallBack,"text");

}

//AJAX请求开始时执行函数

$("#divResult").ajaxStop(function(){

$(this).append("<br/>请求已经结束了<br/>");

});

functionjqPostCallBack(oData){

//在div中显示所有数据

$("#divResult").append(oData);

$("#divResult").css("display","block");

$("#divResult").css("color","red");

}

6、ajaxSuccess(callback)

AJAX 请求成功时执行函数。Ajax 事件。

XMLHttpRequest 对象和设置作为参数传递给回调函数。

返回值 jQuery

参数

callback (Function) : 待执行函数

示例

Code

functionjqAjaxTest(){

varjqRequestUrl="AjaxHandler.ashx";

$.post(jqRequestUrl+"?action=jquery",{userName:"jeffwong",location:"beijing"},jqPostCallBack,"text");

}

//AJAX请求成功时执行函数

$("#divResult").ajaxSuccess(function(evt,request,settings){

$(this).append("<br/>请求成功<br/>");

$(this).append(settings.url);

});

functionjqPostCallBack(oData){

//在div中显示所有数据

$("#divResult").append(oData);

$("#divResult").css("display","block");

$("#divResult").css("color","red");

}

三、其他

1、jQuery.ajaxSetup(options)

设置全局 AJAX 默认选项。

参数见 '$.ajax' 说明。

返回值 jQuery

参数

options (可选) : 选项设置。所有设置项均为可选设置。

示例

//设置AJAX请求默认地址为"AjaxHandler.ashx",禁止触发全局AJAX事件,用POST代替默认GET方法。其后的AJAX请求不再设置任何选项参数。

$.ajaxSetup({

url:"AjaxHandler.ashx",

global:false,

type:"POST"

});

2、serialize()

序列化表单内容为字符串。

返回值 jQuery

参数

序列化表单内容为字符串,用于 Ajax 请求。

示例

$(document).ready(function(){

varoSerializedStr=$("form").serialize();//序列化表单内容为字符串

$("#results").append("<tt>"+oSerializedStr+"</tt>");

});

文档片段:

Code

<body>

<pid="results">

<b>Results:</b>

</p>

<form>

<selectname="single">

<option>Single</option>

<option>Single2</option>

</select>

<selectname="multiple"multiple="multiple">

<optionselected="selected">Multiple</option>

<option>Multiple2</option>

<optionselected="selected">Multiple3</option>

</select><br/>

<inputtype="checkbox"name="check"value="check1"/>

check1

<inputtype="checkbox"name="check"value="check2"checked="checked"/>

check2

<inputtype="radio"name="radio"value="radio1"checked="checked"/>

radio1

<inputtype="radio"name="radio"value="radio2"/>

radio2

</form>

<scriptsrc="js/jQTest.js"type="text/javascript"></script>

</body>

3、serializeArray()

序列化表单内容,返回 JSON 数据结构数据。

返回值 jQuery

参数

序列化表单内容为JSON ,用于 Ajax 请求。

示例

Code

$(document).ready(function(){

varfields=$("select,:radio").serializeArray();//序列化表单select和raido为json

jQuery.each(fields,function(i,field){

$("#results").append(field.value+"");

});

});

好了,关于jQuery的ajax就介绍到这里,笔者的每个示例都测试通过了。jQuery封装好的ajax函数用起来确实方便,有了这样的“神兵利器”,以后写ajax的应用程序肯定会更加得心应手。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。