jQuery学习笔记:Ajax(二)

news/2024/7/4 9:41:18

接上篇“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。
示例

ContractedBlock.gif ExpandedBlockStart.gif Code
function jqAjaxTest() {
    
var jqRequestUrl = "AjaxHandler.ashx";
    $.get(jqRequestUrl 
+ "?action=jquery", { userName: "jeff wong", location: "beijing" }, jqGetNormalCallBack, 'text'); //返回数据类型
}

function jqGetNormalCallBack(oData) {
    $(
"#spanResult").html(oData);//这里直接json数据绑定了,下一个jquery方法会有处理
    $(
"#spanResult").css("display""block");
    $(
"#spanResult").css("color""red");
}

AjaxHandler.ashx代码:

ContractedBlock.gif ExpandedBlockStart.gif Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.SessionState;
using System.Xml;


namespace MyJQTest
{
    
public class AjaxHandler : IHttpHandler, IRequiresSessionState
    {
        
/// <summary>
        
/// 可复用
        
/// </summary>
        public bool IsReusable
        {
            
get
            {
                
return true;
            }
        }

        
public void ProcessRequest(HttpContext context)
        {
            AjaxOperations(context);
        }

        
private void AjaxOperations(HttpContext context)
        {
            
string action = context.Request["action"];
            
if (!string.IsNullOrEmpty(action))
            {
                
switch (action)
                {
                    
default:
                        
break;
                    
case "jquery":
                        ProcessJQueryRequest(context);
                        
break;
                }
            }
        }

        
private void ProcessJQueryRequest(HttpContext context)
        {
            context.Response.ClearContent();
            context.Response.ContentType 
= "text/plain"//设置输出流类型
              context.Response.Cache.SetCacheability(HttpCacheability.NoCache); //没有缓存
              string userName = context.Request["userName"].Trim();
            
string location = context.Request["location"].Trim();
            
string jsonObject = "{\"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) : (可选) 载入成功时回调函数。
示例

ContractedBlock.gif ExpandedBlockStart.gif Code
function jqAjaxTest() {
    
var jqRequestUrl = "AjaxHandler.ashx";
    
//getJSON方法调用
    $.getJSON(jqRequestUrl + "?action=jquery", { userName: "jeff wong", location: "beijing" }, jqGetJsonCallBack); //返回json数据类型
}

//对json数据进行处理 (oData是json类型的数据)
function jqGetJsonCallBack(oData) {
    
var oJsonStr = "";
    
//取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) : (可选) 成功载入后回调函数。
示例

ContractedBlock.gif ExpandedBlockStart.gif Code
function jqAjaxTest() {
    
var jsUrl = "js/jqLoadJs.js";
    
//getScript方法调用
    $.getScript(jsUrl, jqGetJsCallBack);
}

//oData返回的是整个js路径下js文件内容
function jqGetJsCallBack(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。
示例

ContractedBlock.gif ExpandedBlockStart.gif Code
function jqAjaxTest() {
    
var jqRequestUrl = "AjaxHandler.ashx";
    $.post(jqRequestUrl 
+ "?action=jquery", { userName: "jeff wong", location: "beijing" }, jqPostCallBack, "text"); //返回text数据类型
}

function jqPostCallBack(oData) {
    
//在div中显示所有数据
    $("#divResult").html(oData);
    $(
"#divResult").css("display""block");
    $(
"#divResult").css("color""red");
}

 二、Ajax事件
1、ajaxComplete(callback)
AJAX 请求完成时执行函数。Ajax 事件。
XMLHttpRequest 对象和设置作为参数传递给回调函数。
返回值  jQuery
参数
callback (Function) : 待执行函数
示例

ContractedBlock.gif ExpandedBlockStart.gif Code
function jqAjaxTest() {
    
var jqRequestUrl = "AjaxHandler.ashx";
    $.post(jqRequestUrl 
+ "?action=jquery", { userName: "jeff wong", location: "beijing" }, jqPostCallBack, "text"); //返回text数据类型

    
//AJAX 请求完成时执行函数
    $("#divResult").ajaxComplete(function(event, request, settings) {
        $(
this).append("<br/>请求完成.");
    });
}

function jqPostCallBack(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 元素
}

示例

ContractedBlock.gif ExpandedBlockStart.gif Code
function jqAjaxTest() {
    
var jqRequestUrl = "AjaxHandlers.ashx"//正确的文件名  AjaxHandler.ashx  这里故意写错  引发ajaxError事件
    $.post(jqRequestUrl + "?action=jquery", { userName: "jeff wong", 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);
});

function jqPostCallBack(oData) {
    
//在div中显示所有数据
    $("#divResult").html(oData);
    $(
"#divResult").css("display""block");
    $(
"#divResult").css("color""red");
}

3、ajaxSend(callback)
AJAX 请求发送前执行函数。Ajax 事件。
XMLHttpRequest 对象和设置作为参数传递给回调函数。
返回值  jQuery
参数
callback (Function) : 待执行函数
示例

ContractedBlock.gif ExpandedBlockStart.gif Code
function jqAjaxTest() {
    
var jqRequestUrl = "AjaxHandler.ashx"
    $.post(jqRequestUrl + "?action=jquery", { userName: "jeff wong", 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/>");
});

function jqPostCallBack(oData) {
    
//在div中显示所有数据
    $("#divResult").append(oData);
    $(
"#divResult").css("display""block");
    $(
"#divResult").css("color""red");
}

4、ajaxStart(callback)
AJAX 请求开始时执行函数。Ajax 事件。
返回值  jQuery
参数
callback (Function) : 待执行函数
示例

ContractedBlock.gif ExpandedBlockStart.gif Code
function jqAjaxTest() {
    
var jqRequestUrl = "AjaxHandler.ashx"
    $.post(jqRequestUrl + "?action=jquery", { userName: "jeff wong", location: "beijing" }, jqPostCallBack, "text");

}

//AJAX 请求开始时执行函数
$("#divResult").ajaxStart(function() {
    $(
"#divResult").css("display""block");
    $(
"#divResult").css("color""red");
    $(
this).append("<br/>请求开始了<br/>");
});

function jqPostCallBack(oData) {
    
//在div中显示所有数据
    $("#divResult").append(oData);
    $(
"#divResult").css("display""block");
    $(
"#divResult").css("color""red");
}

5、ajaxStop(callback)
AJAX 请求结束时执行函数。Ajax 事件。
返回值  jQuery
参数
callback (Function) : 待执行函数
示例

ContractedBlock.gif ExpandedBlockStart.gif Code
function jqAjaxTest() {
    
var jqRequestUrl = "AjaxHandler.ashx"
    $.post(jqRequestUrl + "?action=jquery", { userName: "jeff wong", location: "beijing" }, jqPostCallBack, "text");

}

//AJAX 请求开始时执行函数
$("#divResult").ajaxStop(function() {
    $(
this).append("<br/>请求已经结束了<br/>");
});

function jqPostCallBack(oData) {
    
//在div中显示所有数据
    $("#divResult").append(oData);
    $(
"#divResult").css("display""block");
    $(
"#divResult").css("color""red");
}

6、ajaxSuccess(callback)
AJAX 请求成功时执行函数。Ajax 事件。
XMLHttpRequest 对象和设置作为参数传递给回调函数。
返回值  jQuery
参数
callback (Function) : 待执行函数
示例

ContractedBlock.gif ExpandedBlockStart.gif Code
function jqAjaxTest() {
    
var jqRequestUrl = "AjaxHandler.ashx"
    $.post(jqRequestUrl + "?action=jquery", { userName: "jeff wong", location: "beijing" }, jqPostCallBack, "text");

}

//AJAX 请求成功时执行函数
$("#divResult").ajaxSuccess(function(evt, request, settings) {
    $(
this).append("<br/>请求成功<br/>");
    $(
this).append(settings.url);
});

function jqPostCallBack(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 () {
    
var  oSerializedStr  =  $( " form " ).serialize();  // 序列化表单内容为字符串
    $( " #results " ).append( " <tt> "   +  oSerializedStr  +   " </tt> " );
});

文档片段:

ContractedBlock.gif ExpandedBlockStart.gif Code
<body>
    
<id="results">
        
<b>Results: </b>
    
</p>
    
<form>
    
<select name="single">
        
<option>Single</option>
        
<option>Single2</option>
    
</select>
    
<select name="multiple" multiple="multiple">
        
<option selected="selected">Multiple</option>
        
<option>Multiple2</option>
        
<option selected="selected">Multiple3</option>
    
</select><br />
    
<input type="checkbox" name="check" value="check1" />
    check1
    
<input type="checkbox" name="check" value="check2" checked="checked" />
    check2
    
<input type="radio" name="radio" value="radio1" checked="checked" />
    radio1
    
<input type="radio" name="radio" value="radio2" />
    radio2
    
</form>

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

</body>

3、serializeArray()
序列化表单内容,返回 JSON 数据结构数据。
返回值  jQuery
参数
序列化表单内容为JSON ,用于 Ajax 请求。
示例

ContractedBlock.gif ExpandedBlockStart.gif Code
$(document).ready(function() {
    
var fields = $("select, :radio").serializeArray(); //序列化表单select和raido为json
    jQuery.each(fields, function(i, field) {
        $(
"#results").append(field.value + " ");
    }); 
});

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

转载于:https://www.cnblogs.com/jeffwongishandsome/archive/2009/08/09/1540868.html


http://www.niftyadmin.cn/n/3613233.html

相关文章

四线电阻触摸屏与五线电阻触摸屏的区别和技术比较

项目 OneTouch -4W四线电阻 OneTouch -5W五线电阻 物理结构 1、屏幕的最底层为一般玻璃板 2、玻璃上有两层 ITO Film&#xff0c;上层用以读取y轴电压值&#xff0c;下层用以读取x轴电压值&#xff0c;两层film紧密靠在一起&#xff0c;镀有ITO的面相对&a…

LED和LCD的区别

LED是发光二极管Light Emitting Diode的英文缩写。 LED应用可分为两大类&#xff1a;一是LED单管应用&#xff0c;包括背光源LED&#xff0c;红外线LED等&#xff1b;另外就是LED显示屏&#xff0c;目前&#xff0c;中国在LED基础材料制造方面与国际还存在着一定的差距&#xf…

MacOS配置新安装的Python环境变量

MacOS配置新安装的Python环境变量官网下载.pkg默认安装配置环境1. 打开终端2. 输入命令3. 编辑.bash_profile文件4. 配置环境变量5. 检查Python版本使用总结官网下载.pkg默认安装 在python官网中下载需要的.pkg包&#xff0c;默认安装即可&#xff08;3.9版本为例&#xff09;…

LCD液晶屏的分类知识

摘要&#xff1a;介绍LCD的分类、选型、背光及一些指标&#xff0c;详细讨论触屏的类别和具体实现。关键词&#xff1a;LCD&#xff1b;触摸屏 一、概述 液晶的发现可追溯到19世纪末&#xff0c;1888年被奥地利植物学家发现。它是一种在一定温度范围内呈现既不同于固态、液态…

电阻和电容式触摸屏区别

电容式摸摸屏与传统的电阻式触摸屏有很大区别。电阻式触控屏幕在工作时每次只能判断一个触控点&#xff0c;如果触控点在两个以上&#xff0c;就不能做出正确的判断了&#xff0c;所以电阻式触摸屏仅适用于点击、拖拽等一些简单动作的判断。而电容式触摸屏的多点触控&#xff0…

JQuery 专题

原创&#xff1a;JQuery $ 应用手记 JQuery CSS 基本选择器 详解 JQuery 位置选择器 详解JQuery -- this 和 $(this) 的区别JQuery 自定义选择器 详解 JQuery CheckBoxListJQuery RadioButtonList JQuery-Map 转载JQuery 性能文章 JQuery Layout 1000个jquery极品插件 在JQu…

Simulink错误未定义函数或变量 ‘fallbackType‘解决方法

目录错误描述解决方法错误描述 解决方法 出现此问题是因为在 simulink 中具有设置了断点的 matlab 模块。 需要在 simulink 中设置“允许在模拟期间设置断点”。 点击工具栏中Model Configuration Parameters&#xff1b; 点击新开窗口中左侧菜单栏中Simulation Target&#…

WaveCom 短信猫C#开发,有问题的进来讨论下----(先占个位子)

悲剧了那&#xff0c;呵呵。这边http://www.cnblogs.com/engin/archive/2010/11/23/1885907.html有个具体的&#xff0c;我这个就当自己做过写点感触了。 最近在开发应用级的短信发送东东。不说别的了&#xff0c;下面就是咱的家伙&#xff1a; 短信猫为&#xff1a;USB waveco…