记录下Jquery的3个异步方法。
页面:
jQueryData.ashx代码:
getJSON方法获取JSON格式的数据。get方法的数据要求没getJSON严格,可以进行一些字符串的传递。而jQuery.ajax其实是上面方法的原型,getJSON,get都是简写的jQuery.ajax.
值得一说的是, jQuery 1.4 是用parseJSON()来解析返回的json数据的,因此上面适用于1.3的getJSON写法在1.4下会无法取得数据。
1.4下正常的JSON,要注意双引号:
页面:
<html >
<head>
<script src="js/jquery-1.3.min.js" type="text/javascript"></script>
<script>
function GetJson()
{
$.getJSON('jQueryData.ashx',{flag:"GetJson"},
function(data)
{
$.each(data,function(i){
alert(data[i].name);
alert(data[i].age);
});
});
}
function Get()
{
$.get('jQueryData.ashx',{flag:"Get"},
function(data)
{
alert(data);
});
}
function Ajax()
{
jQuery.ajax({
url:"jQueryData.ashx",
dataType:"get",
cache:false,
data:{flag:"ajax"},
async: false,
error:function(){},
success:function(htmlInfo){
alert(htmlInfo);
}
});
}
</script>
</head>
<body>
<form name="form1" method="post" action="test1.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTUxMTcwNzgxMGRkF6FjsQKs8c6sxP+bTT3rQIZWpxk=" />
</div>
<div>
<input id="Button1" type="button" value="GetJson" οnclick="GetJson()" />
<input id="Button2" type="button" value="Get" οnclick="Get()" />
<input id="Button3" type="button" value="Ajax" οnclick="Ajax()" />
</div>
</form>
</body>
</html>
jQueryData.ashx代码:
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
string flag = context.Request.QueryString["flag"].ToString();
string backData = "";
switch (flag)
{
case "GetJson":
backData = "[{name:\"Tom\",age:25},{name:\"Jack\",age:32}]";
//backData = "[{\"name\":\"Tom\",\"age\":25},{\"name\":\"Jack\",\"age\":32}]";
break;
case "Get":
backData = "hello 2";
break;
case "ajax":
backData = "hello 3";
break;
}
context.Response.Write(backData);
}
getJSON方法获取JSON格式的数据。get方法的数据要求没getJSON严格,可以进行一些字符串的传递。而jQuery.ajax其实是上面方法的原型,getJSON,get都是简写的jQuery.ajax.
值得一说的是, jQuery 1.4 是用parseJSON()来解析返回的json数据的,因此上面适用于1.3的getJSON写法在1.4下会无法取得数据。
1.4下正常的JSON,要注意双引号:
backData = "[{\"name\":\"Tom\",\"age\":25},{\"name\":\"Jack\",\"age\":32}]";