laoding
本来我以为,隐身了别人就找不到我,没有用的,像我这样拉风的男人,无论走到哪里,都像在黑暗中的萤火虫一样,那样的鲜明,那样的出众。我那忧郁的眼神,稀疏的胡茬,那微微隆起的将军肚和亲切的笑容......都深深吸引了众人......
posts - 0,  comments - 37,  trackbacks - 0
最近研究了下ajax,贴出来分享下

AJAX (异步 javascript 和 XML) 是个新产生的术语,专为描述javascript的两项强大性能,这两项强大性能是:
        1.无需重新装载整个页面便能向服务器发送请求.
  2.对XML文档的解析和处理.

发送HTTP请求:

首先创造一个类实例
    try{
                     request  
=   new  XMLHttpRequest();
                   }
catch(trymicrosoft) {
                      
try{
                           request 
= new  ActiveXObject("Msxml2.XMLHTTP");
                     }
catch(othermicrosoft){
                        
try{
                             request  
=   new  ActiveXObject("Microsoft.XMLHTTP");
                           }
catch  (failed) {
                             request  
=   false ;
                           }  
                     }
                   }

得到响应后就用这句:
    request.onreadystatechange = loginCallBack;

这里指出要用那个JS函执行,这里是loginCallBack函数,这里的函数无需括号也无需参数。

在定义了如何处理响应后,就要发送请求了。可以调用HTTP请求类的open()和send()方法,如下所示:
request.open("get",url,true);
request.send(
null);
        open()的第一个参数是HTTP请求方式 - GET,POST,HEAD 或任何服务器所支持的您想调用的方式。这个参数最好大写,某些浏览器(如Firefox)可能无法处理请求。
  第二个参数是请求页面的URL.由于自身安全特性的限制,该页面不能为第三方域名的页面.同时一定要保证在所有的页面中都使用准确的域名,否则调用出错。
  第三个参数设置请求是否为异步模式。如果是TRUE, javascript函数将继续执行,而不等待服务器响应。
如果第一个参数是post,send方法可以传递参数格式跟我们WEB开发是浏览器地址一回事,多个可以用&连接:??=??&??=??(用问号表示下)。

function  loginCallBack(){
                
if(request.readyState  ==   4 ) 
                    
if  (request.status  ==   200 ){ 
                          var  mess  
=  request.responseText;                                                    
                    }
           }


这里首先函数检查请求的状态,如果是4,就意味着一个完整的服务器响应已经收到了,可以处理该响应。

 readyState的值如下:
  0 (未初始化)
  1 (正在装载)
  2 (装载完毕)
  3 (交互中)
  4 (完成)

然后,函数会检查HTTP服务器响应的状态值,是200表示状态完整。
当这两个当满足后就可以处理数据了,取得数据的方式有两种:

request.responseText
request.responseXML

第一种是以文本字符串的方式返回服务器的响应;
第二种是以XMLDocument对象方式返回响应。

下面来看例子:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>
  
<head>   
    
<title>My JSP 'index.jsp' starting page</title>
  
</head>
  
  
<body>
    
<script type="text/javascript" language="javascript">
function gotoSubmit(){
            getRequest();
//获得请求
                if(!request){
                    alert(
"该浏览器不支持XMLHttpRequest!");
                    
return false;
                }
                request.onreadystatechange 
= loginCallBack;
                var url 
= "index.jsp";
                 request.open(
"post",url,false);
                 
//request.open("get",url,true);
                 request.send(null);        
        }

        function getRequest(){      
                
try{
                     request  
=   new  XMLHttpRequest();
                   }
catch(trymicrosoft) {
                      
try{
                           request 
= new  ActiveXObject("Msxml2.XMLHTTP");
                     }
catch(othermicrosoft){
                        
try{
                             request  
=   new  ActiveXObject("Microsoft.XMLHTTP");
                           }
catch  (failed) {
                             request  
=   false ;
                           }  
                     }
                   }
            }
            function  loginCallBack(){
                
if(request.readyState  ==   4 ) 
                    
if  (request.status  ==   200 ){ 
                          var  mess  
=  request.responseText;                                                    
                    }
           }


</script>
<span
    style
="cursor: pointer; text-decoration: underline"
    onclick
="gotoSubmit()">
        gotoSubmit
</span>

  
</body>
</html>


跑起工程后在这个页面上点击gotoSubmit,会弹出index.jsp页面的所有内容。

来看看处理xml文件,处理的xml文件如下:

<?xml version="1.0" ?>
<name>
    laoding
</name>

上面代码要改的地方有两个,第一把url换成这个xml文件的路径,第二个地方是弹出信息的地方:
var mess=request.responseText;
               alert(mess);
把这两句换成:

var xmldoc = request.responseXML;
var root_node 
= xmldoc.getElementsByTagName('name').item(0);
alert(root_node.firstChild.data); 

再执行程序就会看到效果了,好了,到此结束了,眼睛痛回去休息。
posted on 2008-12-02 20:20 老丁 阅读(257) 评论(0)  编辑  收藏 所属分类: ajax

只有注册用户登录后才能发表评论。


网站导航:
 
本博客主为学习和复习之用,无关其他,想骂人的绕道
Email:dkm123456@126.com
大家一起交流进步
QQ:283582761


<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

留言簿(4)

我参与的团队

文章分类(50)

文章档案(48)

相册

朋友

搜索

  •  

积分与排名

  • 积分 - 95842
  • 排名 - 599

最新评论