>>分享Web前端开发技术,并对孙卫琴的《精通Vue.js:Web前端开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 26032 个阅读者 刷新本主题
 * 贴子主题:  AJAX:处理onreadystatechange 事件 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2019-08-17 14:37:12     消息  查看  搜索  好友  邮件  复制  引用

  

AJAX -  onreadystatechange 事件

onreadystatechange 事件

     当请求被发送到服务器时,我们需要执行一些基于响应的任务。

     每当 readyState 改变时,就会触发 onreadystatechange 事件。

      readyState 属性存有 XMLHttpRequest 的状态信息。

     下面是 XMLHttpRequest 对象的三个重要的属性:

            
属性 描述
onreadystatechange 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
readyState 存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。    
  • 0: 请求未初始化
  • 1: 服务器连接已建立
  • 2: 请求已接收
  • 3: 请求处理中
  • 4: 请求已完成,且响应已就绪
status 200: "OK"

     404: 未找到页面


     在 onreadystatechange 事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。
     当 readyState 等于 4 且状态为 200 时,表示响应已就绪:                            

范例

xmlhttp . onreadystatechange = function ( )
{
     if   ( xmlhttp . readyState == 4  &&  xmlhttp . status == 200 )
     {
         document . getElementById ( " myDiv " ) . innerHTML = xmlhttp . responseText ;
     }
}

             注意: onreadystatechange 事件被触发 4 次(0 - 4), 分别是: 0-1、1-2、2-3、3-4,对应着 readyState 的每个变化。            

使用回调函数

     回调函数是一种以参数形式传递给另一个函数的函数。

    如果您的网站上存在多个 AJAX 任务,那么您应该为创建 XMLHttpRequest 对象编写一个标准的函数,并为每个 AJAX 任务调用该函数。

    该函数调用应该包含 URL 以及发生 onreadystatechange 事件时执行的任务(每次调用可能不尽相同):                            

范例

function   myFunction ( )
{
     loadXMLDoc ( " /try/ajax/ajax_info.txt " , function ( )
     {
         if   ( xmlhttp . readyState == 4  &&  xmlhttp . status == 200 )
         {
             document . getElementById ( " myDiv " ) . innerHTML = xmlhttp . responseText ;
         }
     } ) ;
}

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-02-15 11:42:21 重新编辑]
  Java面向对象编程-->图形用户界面(上)
  JavaWeb开发-->自定义JSP标签(Ⅰ)
  JSP与Hibernate开发-->使用JPA和注解
  Java网络编程-->创建非阻塞的HTTP服务器
  精通Spring-->
  Vue3开发-->Vue Router路由管理器
  本以为精通Vue,没想到被前阿里大佬虐哭了......
  web前端工程师面试题的知识考点盘总
  Vue项目PWA化
  css3中translate、transform和translation,以及动画animati...
  Vue watcher的高级用法
  vue中axios异步调用接口的坑
  Vue项目的性能优化之路
  Vue自定义指令的用法
  vue导出pdf格式文件
  Vue开发常用的框架及案例
  JavaScript的HTML DOM td / th 对象
  Javascript DOM封装方法汇总
  CSS3 多列布局
  HTML5 内联 SVG
  JavaScript的 while 循环语句
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。