jQuery.ajax

参考文章:http://www.cnblogs.com/zhangziqiu/archive/2009/05/08/jquery-learn-6.html

A。load方法:能够载入远程HTML文件代码并插入至DOM中。Returns: jQuery包装集。默认使用get方式, 如果传递了data参数则使用post方式。调用格式为load(url,[data],[callback])。
B。get方法:通过远程HTTP GET请求载入信息。Returns: XMLHttpRequest。调用格式为get(url,[data],[callback],[type])。
C。getJSON方法:通过HTTP GET请求载入JSON 数据。Returns: XMLHttpRequest。调用格式为getJSON(url,[data],[callback])。相当于:get(url,[data],[callback],"json"),getJSON函数仅仅将get函数的type参数设置为"JSON"而已,即在回调函数中获取的数据已经是按照JSON格式解析后的对象了。
D。post方法:通过远程HTTP POST请求载入信息。具体用法和get相同, 只是提交方式由"GET"改为"POST".调用格式为post(url,[data],[callback],[type])
E。ajax方法:通过HTTP请求加载远程数据。Returns: XMLHttpRequest。jQuery底层AJAX实现。简单易用的高层实现见$.get,$.post等。

PS:load方法返回的是jQuery包装集,get和post返回的是XMLHttpRequest,所以使用get和post时callback函数可以得到请求的url(this.url)等信息;另外get和post可以返回json格式的数据。(其它好像都差不多)

 

1。load方法
test.html:

代码
<script type="text/javascript" src="jquery-1.3.2-vsdoc2.js"></script>
<script type="text/javascript">
$(function()
{            
    $(
"#btnAjaxJquery").click(function(event)  //定义按钮事件,$("p").click( function (){ $(this).hide(); });
    {
        $(
"#divResult").load("Default.aspx", { "myParam""myValue"},function (data, status){ alert(data); } );
        
//返回的status值为success或error,用于判断请求是否成功
        
//如果存在多个参数,可以用逗号连接,如:{ "myParam": "myValue" ,"otherParam" : "otherValue" };
        
//也可以直接写在url后面,如.load("Default.aspx?myParam=myValue",null,function...
        
//请求Default.aspx页,参数为myParam,值为myValue,得到服务器响应后再执行alert,显示请求页的HTML输出
    });       
})        
</script>
...
<button id="Button1">使用jQuery的load方法</button><br />
<div id="div1"></div>

 

返回一個值: Default.aspx.cs:

代码
protected void Page_Load(object sender, EventArgs e)
{
  
string myParam = "Null";
    
if (!String.IsNullOrEmpty(HttpContext.Current.Request["myParam"]))
    {
        myParam 
= HttpContext.Current.Request["myParam"].ToString();
    }
    Response.Clear();  
//清除输出,使得只返回需要的处理值
    Response.Write(myParam + "Back");
    Response.End();
}

 

返回一个数据窗:
Default.aspx:
<form id="form1" runat="server">
    <asp:GridView ID="GridView1" runat="server">
    </asp:GridView>
</form>
Default.aspx.cs:

代码
using System.IO;
using System.Globalization;
protected void Page_Load(object sender, EventArgs e)
{
  
string myParam = HttpContext.Current.Request["myParam"].ToString();  //得到test.html的参数值
    DataSet ds = conn.GetDataSetFromParam(myParam);  //由参数值得到结果集
    GridView1.DataSource = ds;
    GridView1.DataBind();

    Response.Clear();
    Response.Write(RenderControl(form1));  
//更新form1
    Response.End();
}
private string RenderControl(Control control)  //重画控件
{
    StringWriter writer1 
= new StringWriter(CultureInfo.InvariantCulture);
    HtmlTextWriter writer2 
= new HtmlTextWriter(writer1);

    control.RenderControl(writer2);
    writer2.Flush();
    writer2.Close();

    
return writer1.ToString();
}

 

2。用get获取JSON格式的对象
test.html:

代码
<script type="text/javascript" src="jquery-1.3.2-vsdoc2.js"></script>
<script type="text/javascript">
    $(function()
    {            
        $(
"#btnAjaxJquery").click(function(event)
        {
             $.
get("Default.aspx", { "Name" : "Terry" , "Sex" : "Boy"}, function (data, textStatus){
       alert(
this.url + "\r\n  Data:" + data.rtnName + "," + data.rtnSex);
             },
"json");
    })            
    });       
</script>
...   
<button id="btnAjaxJquery">使用jQuery的get方法</button>

Deafult.aspx.cs:

代码
protected void Page_Load(object sender, EventArgs e)
{
    Response.Clear();
    Response.Write(
"{ rtnName:'" + Request["Name"].ToString() + "',rtnSex:'" + Request["Sex"].ToString() + "'}");  
    
//返回格式 { param:'value',param2:'value2'}
    Response.End();
}

 

3。ajax高级实现,获取http://www.cnblogs.com/rss的订阅信息:
test.html:

代码
<script type="text/javascript" src="jquery-1.3.2-vsdoc2.js"></script>
<script type="text/javascript">
$(function()
{            
    $(
"#btnAjaxJquery").click(function(event)
    {
        $.ajax({
                type: 
"get",
                url: 
"http://www.cnblogs.com/rss",
                beforeSend: function(XMLHttpRequest){
                 alert(
'before');
                },
                success: function(data, textStatus){
                  $(
"#divResult").html("");
                  $(
"item",data).each(function(i, domEle){
                    $(
"#divResult").append("<li>"+$(domEle).children("title").text()+"</li>");
                  });
                },
                complete: function(XMLHttpRequest, textStatus){
                  alert(
'complete');
                },
                error: function(){
                alert(
'error');
                }
            });

    })
});       
</script>
...
<button id="btnAjaxJquery">使用jQuery的ajax方法</button>
<br />
<div id="divResult"></div>

 

 

posted @ 2009-12-16 17:19  DaCHun  阅读(439)  评论(0编辑  收藏  举报