转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
xmlhttp异步操作之代码说明         ★★★★

xmlhttp异步操作之代码说明

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1107 更新时间:2009/6/9 2:33:18

        ajax第一个字母就是Asynchronous-异步,那么到底xmlhttp为何能支持异步操作呢?

        我们在使用ajaxpro的时候,经常这么调用服务器端方法

   function DoSomething()
{
MyPage.Method1.Do(val1,val2,CallBack);
}
function CallBack(res)
{
//res.value;
}

        这样在调用DoSomething方法的时候,会很快返回,用户可以继续操作界面,直到回调函数得到通知运行,再处理本次请求的结果。这就是一次异步操作。

        那是通过什么样的机制来完成对CallBack函数的通知的呢,XmlHttpRequest对象支持一种onreadystatechange的委托,请求j状态的更改会触发这个委托。 HTTP 就绪状态表示请求的状态或情形。它用于确定该请求是否已经开始、是否得到了响应或者请求/响应模型是否已经完成。它还可以帮助确定读取服务器提供的响应文本或数据是否安全。在 Ajax 应用程序中需要了解五种就绪状态:

        ①请求没有发出(在调用 open() 之前)。

        ②请求已经建立但还没有发出(调用 send() 之前)。

        ③请求已经发出正在处理之中(这里通常可以从响应得到内容头部)。

        ④请求已经处理,响应中通常有部分数据可用,但是服务器还没有完成响应。

        ⑤响应已完成,可以访问服务器响应并使用它。

        在ajax中最常用的就是状态标志4,回调函数中发现状态标志为4的时候,就可以做处理请求数据的操作了。

        比如创建XmlHttpRequest的代码如下:

   function CreateXMLHttpRequest(){
// Initialize Mozilla XMLHttpRequest object
   if (window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
// Initialize for IE/Windows ActiveX version
   else if (window.ActiveXObject) {
try{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
}
catch (e){
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){newsstring = "<div class='loading'>Loading rquest content fail, Please try it again latter</div>";}
}
}

 
        发出xmlhttprequest并支持回调函数的代码如下:

   xmlHttp.onreadystatechange = function(){
// only if xmlHttp shows "complete"
   if (xmlHttp.readyState == 4){
// only http 200 to process
      if (  xmlHttp.status == 200){ CallBack();}}} xmlHttp.open("GET", url, true);
xmlHttp.setRequestHeader("If-Modified-Since","0");
xmlHttp.send(null);


[Web开发]ASP.Net生成静态HTML页  [Web开发]js如何读取静态html网页文件的url参数
[Web开发]word文档(带控件)转成htm文件源代码示例-2  [Web开发]word文档(带控件)转成htm文件源代码示例-1
[Web开发]HTTP(401,500)错误代码详细介绍  [Web开发]如何在Asp.net中使用HtmlArea编辑器
[Web开发]ASP.NET清除HTML标记的函数  [Web开发]使用localhost能打开网页而使用127.0.0.1无法打开…
[Web开发]如何获取HTML页面中的图片地址并将图片下载保存到…  [Web开发]简单介绍XML在Web中的应用
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台