Ajax的经典示例

   Ajax(Asynchronous JavaScript and XML),使用户在使用Web程序时,不用在来来回回的Post了,可以近乎实时的从客户端收到服务器返回的信息,而无需刷新,极大的非富了用户的操作体验。
       
         XMLHttpRequest对象是Ajax的核心对象

        不同的浏览器,建立对象的方式不同这里以IE为例
        var request = new ActiveXObject("Microsoft.XMLHTTP")

        XMLHttpRequest对象的方法和属性:

        open(request-type,url,asynch,username,password):建立到服务器的新请求。
        request-type 发送请求的类型:get,post,head
        url 要连接的url
        asynch 可选参数,如使用异步连接为true,如使用同步连接为false,默认值为true
        username 可选参数,如果需要身份验证,则可以在此指定用户名,无可选参数
        password 可选参数,如果需要身份验证,则可以在此指定口令,无可选参数

        send(content):向服务器发送请求。
        content 要发送的内容
 
        abort():退出当前请求。

        readyState:提供当前 HTML 的就绪状态。
        0:请求未初始化
        1:请求已经建立,但是还没有发送(还没有调用 send())
        2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)
        3:请求在处理中,通常响应中已有部分数据可用了
        4:响应已完成

        status:提供当前HTML的状态码
        401:未经授权
        403:禁止访问
        404:没找到访问页
        200:正常

        XMLHttpRequest对象的Head请求

        取得Response的Header
        request.getAllResponseHeaders();
        request.getResponseHeader("Server");
        request.getResponseHeader("Connection");
        request.getResponseHeader("Date");
        request.getResponseHeader("Content-Length");
        request.getResponseHeader("Keep-Alive");
        request.getResponseHeader("X-Cache");
        request.getResponseHeader("Content-Type");   

        设置Request的Header
        request.setRequest("Server") = "";
        request.setRequest("Connection") = "";
        request.setRequest("Date") = "";
        request.setRequest("Content-Length") = "";
        request.setRequest("Keep-Alive") = "";
        request.setRequest("X-Cache") = "";
        equest.setRequest("Content-Type") = "";

        一、异步调用的程序示例
       

<script language="JavaScript">
    
    
var request = new ActiveXObject("Microsoft.XMLHTTP");    //建立XMLHttpRequest对象
    function  sendRequest()
    
{
        url 
= "http://test/test.asp?Name=" +    Value;    //设置要发送的Url,发送的值为键值对


        request.open(
"get",url,true);            //调用open方法
        
        request.onreadystatechange 
= showMessage;    //设置服务器要回调的方法

        request.send(null);                //发送
    }

    
    
function  showMessage()
    
{
        
if(request.readyState == 4 && request.status == 200
)
        
{
            alert(request.responseText);
        }

    }

</script>


        二、同步调用程序示例
       

<script language="JavaScript">
    
    
var request = new ActiveXObject("Microsoft.XMLHTTP");    //建立XMLHttpRequest对象

    
function  sendRequest()
    
{
        url 
= "http://test/test.asp?Name=" +    Value;    //设置要发送的Url,发送的值为键值对


        request.open(
"get",url,false);            //调用open方法
        
                        
        request.send(
null);                //发送

    
        
        alert(request.responseText);
        
    }



</script>


       异步请求程序示例说明:程序首先建立了XMLHttpRequest对象,之后以异步的方法执行请求,onreadystatechange是在请求状态发生改变时,服务器要回调的客端方法,要在send()方法之前设置,在showMessage()方法里,当readState的状态为4且 status为200时,执行操作同步请求与异步请求的差别在于,同步请求时,客户端要行进等待,当服务器处理完请求后再在执行以下的程序,而异步请求不必如此,客户端的程序在请求发出之后就可以继续执行,而不必等待,直到服务器处理后,再回调用onreadystatechange注册的方法。

        三、请求Head的程序示例

<script language="JavaScript">
    
var request = new ActiveXObject("Microsoft.XMLHTTP");    //建立XMLHttpRequest对象
        
    
function
 sendRequest()
    
{
        url 
= "http://test/test.asp";            //要发送的Url


        request.open(
"head",url,true);            //调用open方法

        request.onreadystatechange 
= showMessage;    //设置服务器要回调的方法
        request.send(null);                //发送
    }


    
function  showMessage()
    
{
        
if(request.readyState == 4 && request.status == 200
)
        
{
            alert(request.getAllResponseHeaders());    
//取得Header的值

        }

    }


    
</script>

        这个方法与上一个方法的不同之处就在于open()方法的第一个参数是head,我们可以重写showMessage以取得相应的Head值

function  showMessage()
    
{
        
if(request.readyState == 4 && request.status == 200
)
        
{
            alert(request.getResponseHeader(
"Server"
));
            alert(request.getResponseHeader(
"Connection"
));
            alert(request.getResponseHeader(
"Date"
));
            alert(request.getResponseHeader(
"Content-Length"
));
            alert(request.getResponseHeader(
"Keep-Alive"
));
            alert(request.getResponseHeader(
"X-Cache"
));
            alert(request.getResponseHeader(
"Content-Type"
));
        }

    }
    

        四、发送XML数据

        XMLHttpRequest对象可向服务器发送XML格式的数据,但这样做会降低程序的响应速度,因为与普通的文本相比,XML格式的数据,要处理更多额外的东西,建议没有必要的情况下,不要使用XML

        发送XML数据的程序示例

<script language="JavaScript">
            
        
var request = new ActiveXObject("Microsoft.XMLHttpRequest");        //建立XMLHttpRequest对象
        
        
function
 sendXmlRequest()
        
{
            xml 
= "";                            //XML数据    

            
            url 
= "http://test/test.asp";                    //设置发送的Url

            
            request.open(
"post",url,false);                    //调用open方法


            request.setRequestHeader(
"Content-Type","text/xml");        //设置发送请求的头
    
            request.send(xml);

            
//要执行的程序    

        }

    
</script>

<script src="http://webcenter.hit.edu.cn/js/articleBottomAD.js"></script>

ajax经典实例+代码大全 绝对经典 -------- 目录说明 -------- database 目录存放数据库SQL文件 java 目录存放java源文件 webapp 目录存放实例页面及JSP源文件 -------------- 数据库安装说明 -------------- 了解MySQL的用户可以直接使用自己熟悉的方式创建名为ajax的数据库,并将ajax.sql文件导入即可。 下面是简要操作方法: 1. 实例数据库在MySQL 5.0.27 版本下测试通过 2. 将database目录中ajax.sql文件复制到C:\ 3. 进入MySQL安装目录中的bin目录 4. 输入 mysql -u root -p ,然后输入密码登录本地MySQL服务器 5. 输入 CREATE DATABASE ajax DEFAULT CHARACTER SET utf8; 创建名为ajax的数据库 6. 输入 use ajax 7. 输入 source c:\ajax.sql 执行数据库初始化语句 ------------------ Java源文件使用说明 ------------------ 实例中大部分文件为HTML及JSP文件,部分Java源文件存放在java目录中。 可将目录中的内容作为Eclipse的一个项目导入Eclipse中使用。 ----------- WEB发布方法 ----------- 所有实例在jdk 1.4.2 + Tomcat 5.0.28 环境下测试通过。 将webapp目录中的内容复制到Tomcat的webapps目录中作为一个web应用发布即可。 启动Tomcat前注意修改 ajax/WEB-INF/classes/ajax_db.properties 文件。 将其中的URL、USER和PASSWORD属性根据实际情况进行修改。 Tomcat正常启动后使用 http://localhost:8080/ajax 进行访问 +=========================================================================================== 最后注释: 可能还有一点,就是把你的ajax密码定位好 路径是:${ajax}\ajax\WEB-INF\classes\ajax_db.properties,用记事本打开。那个${ajax}就是你当前存放ajax这个文件夹的路 径 DRIVERS=com.mysql.jdbc.Driver URL=jdbc:mysql://localhost/ajax?useUnicode=true&characterEncoding=utf8 USER=root PASSWORD=ajax 里面的代码是这样写的,把最后一行的那个对应的密码改为你自己数据库的代码就OK
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值