jQuery学习笔录10(jQuery和ajax)

23 篇文章 0 订阅
10 篇文章 0 订阅

Ajax :Asynchronous JavaScript and XML  异步Javascript和xml

传统模式:数据提交是通过表单Form来实现, 而数据获取是靠全网页刷新来重新获取整页内容。

Ajax模式 只是 通过XMLHttpRequest对象向服务器端提交希望提交的数据。

<button>按钮用来触发Ajax,id为“resText”的元素用来显示从服务器返回的HTML文本

一个小例子:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ajax1.aspx.cs" Inherits="ajax_ajax1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
    <script src="../scriptJquery/jquery-1.3.2.min.js"></script>

</head>
<body>
    <form id="form1" runat="server">
    <input type="button" value="Ajax提交" οnclick="Ajax()" />
    <div id="resText"></div>
    </form>
</body>
</html>
    <script>
    //声明一个空对象用来装入XMLHttpRequest对象
    var xmlHttpReq=null;
    //定义一个函数,通过该函数来异步获取信息
    function Ajax(){
        //给XMLHttpRequest对象赋值
        if(window.ActiveXObject){  //IE5 IE6 是以ActiveXObject的方式
                                   //引入XMLHttpRequest对象的。
            xmlHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
        }else if(window.XMLHttpRequest){//除IE5 IE6以外的浏览器
                                        //XMLHttpRequest是window的子对象
            xmlHttpReq=new XMLHttpRequest(); //实例化一个XMLHttpRequest对象                        
        }
        //实例化成功后,使用open()方法初始化XMLHttpRequest对象,指定HTTP方法和要使用的服务器URL 
        xmlHttpReq.open("GET","test.aspx",true)//调用open()方法并采用异步方式
        
        
        
        //因为要做一个异步调用,所以需要注册一个XMLHttpRequest对象将调用的回调事件处理器 当他的readyState值改变时调用。
        //当readyState值被改变时,会激发一个readyStateChange事件,可以使用onreadystatechange属性来注册该回调事件处理器。
        xmlHttpReq.onreadystatechange=RequestCallBack;//设置回调函数,类似委托,将函数名指针给他
        
         xmlHttpReq.send(null); //使用send()方法发送该请求。因为这个请求使用的是HTTP的GET方式,所以可以在不指定参数或参数为null情况下调用send()方法
        //请求状态改变时,XMLHttpRequest对象调用onreadystatechange属性注册的事件处理器。xmlHttpReq.send(string)用于post
       
       
    }
     function RequestCallBack(){
            //事件处理器首先检查readyState的值和HTTP状态
            if(xmlHttpReq.readyState==4){//请求完成加载
                if(xmlHttpReq.status==200){//响应已经成功
                alert(xmlHttpReq.responseText);
                    document.getElementById("resText").innerHTML=xmlHttpReq.responseText;  
                }
            }
        }
</script>
使用XMLHttpRequest对象,不必将Web页面的所有内容都发送到服务器,而是按需发送,使用js启动一个请求并处理相应的返回值,然后使用DOM方法更新页面中的数据。

Send()方法

调用Open()后,就可以通过调用send()方法按照open()方法设定的参数将请求进行发送。当open()方法中async参数为true时,在send()方法调用后立即返回,

否则将会中断直到请求返回。

send()必须在readyState属性值为1时,调用open()方法以后才能调用。

调用send()之后到接收到响应信息之前,readyState属性的值将被设为2;

一旦接收到响应消息,readyState属性值将会设为3;响应接收完成readyState属性值设为4.

responseText属性

responseText属性包含客户端接受到的HTTP响应的文本内容。

readyState属性值=0,1,2时 , responseText属性包含一个空字符串。

readyState=3 , responseText正在接收,响应中包含客户端还未完成的响应信息。

readyState=4 , responseText 已加载,这时 responseText属性才包含完整的响应信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值