当前位置: 代码迷 >> Ajax >> Ajax 简略示例
  详细解决方案

Ajax 简略示例

热度:314   发布时间:2012-10-24 14:15:58.0
Ajax 简单示例
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
   <title>xmlhttprequest ajax demo</title>
    <script type ="text/javascript" language ="javascript" >
        var req; //定义变量,用来创建xmlhttprequest对象
        function creatReq() // 创建xmlhttprequest,ajax开始
        {
            var url="ajaxServer.aspx"; //要请求的服务端地址
            if(window.XMLHttpRequest) //非IE浏览器及IE7(7.0及以上版本),用xmlhttprequest对象创建
            {
                req=new XMLHttpRequest();
            }
            else if(window.ActiveXObject) //IE(6.0及以下版本)浏览器用activexobject对象创建,如果用户浏览器禁用了ActiveX,可能会失败.            {
                req=new ActiveXObject("Microsoft.XMLHttp");
            }
           
            if(req) //成功创建xmlhttprequest
            {
                req.open("GET",url,true); //与服务端建立连接(请求方式post或get,地址,true表示异步)
                req.onreadystatechange = callback; //指定回调函数
                req.send(null); //发送请求
            }
        }
       
        function callback() //回调函数,对服务端的响应处理,监视response状态
        {
            if(req.readystate==4) //请求状态为4表示成功
            {
                if(req.status==200) //http状态200表示OK
                {
                    Dispaly(); //所有状态成功,执行此函数,显示数据
                }
                else //http返回状态失败
                {
                    alert("服务端返回状态" + req.statusText);
                }
            }
            else //请求状态还没有成功,页面等待
            {
                document .getElementById ("myTime").innerHTML ="数据加载中";
            }
        }
       
        function Dispaly() //接受服务端返回的数据,对其进行显示
        {
            document .getElementById ("myTime").innerHTML =req.responseText;
        }
       
    </script>
</head>
<body>
    <div id="myTime"></div>
       
    <input id="Button1" type="button" value="Get Time"  onclick ="creatReq();"/>
</body>
</html>


对于Ajax需要注意执行 的 顺序

对于input 类型为text的 动作有 onChange() onPropertyChange() 后者比前者的反应 更加的敏感,有可能onChange()不会随着里面的改变而改变,但是onPropertyChange()肯定会随着value的值 改变而改变。

对于返回的值,要把结果写在最后的条件都符合的情况下,就是注意函数的位置。

操作xml的时候 用到的方法 和以前操作xml的是一样的,如getElementsByTagName(),还有.firstChild.data,nodeValue.

Ajax执行的顺序是open,onreadystatechange,send 都是基于流的形式传输。

对于servlet里面 注意 都是 用流的形式进行 传输和取值。resp.setContentType(),里面得相应的设置方式。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zuowangxi/archive/2009/12/30/5104036.aspx
1 楼 jackleaf 2010-01-25  
给美女点鼓励。
2 楼 matychen 2010-01-27  
jackleaf 写道
给美女点鼓励。

不一定是美女
3 楼 gundumw100 2010-01-28  
jackleaf 写道
给美女点鼓励。

是美女的男朋友在发帖。
4 楼 aoliwen521 2010-01-28  
就算是美女,也不能给良好贴吧??大家做事还是要有原则!!
5 楼 Javac_MyLife 2010-01-28  
demo级别?。。
6 楼 bcsj123 2010-01-28  
学习了。。
7 楼 hommy8 2010-01-29  
高手 高手
8 楼 mornstar 2010-01-29  
oh, my.不用JQuery?
9 楼 yipbxx 2010-01-29  
有强大的JS框架不用真浪费
10 楼 javajdbc 2010-01-29  
学习啦  受益

THANK YOU LZ...
11 楼 刃之舞 2010-01-29  
mornstar 写道
oh, my.不用JQuery?

xmlhttprequest 有这个对象用已经很幸福了

没这个对象只能用隐藏帧搞ajax
12 楼 rjzou2006 2010-01-30  
美女我来啦。
13 楼 zuowangxi 2010-01-30  
呃。。。
首先申明,这个是我们在学习Ajax的时候老师说过的,我只是把这个自己实际动手做过的整理下,也方便自己以后学习!
14 楼 showr 2010-01-31  
如果是jsp的话,你这样会不会有点问题啊?
当有参数并且是中文的时候
应该会有乱码
在 send({参数}) 前面设置下 参数格式及编码 。。。

不过要是用jquery的话,真是超级简单

$.post(utl,params,function(result){
      alert(result);
   }
);
15 楼 zuowangxi 2010-02-02  
post(utl,params,function(result){
      alert(result
showr 写道
如果是jsp的话,你这样会不会有点问题啊?
当有参数并且是中文的时候
应该会有乱码
在 send({参数}) 前面设置下 参数格式及编码 。。。

不过要是用jquery的话,真是超级简单

$.post(utl,params,function(result){
      alert(result);
   }
);


呵呵。你说的对,如果是中文的话确实需要2次编码URI,不然确实会出现乱码
这篇文章也只是简单的说了一下Ajax的简单用法。
jQuery这些框架用起来肯定很简单,(*^__^*)
16 楼 345161974 2010-02-16  
刚学习Ajax,路过,看着挺适合新手学习的,支持下
  相关解决方案