PHP实现简单ajax Loading加载功能示例


Posted in PHP onDecember 28, 2016

本文实例讲述了PHP实现简单ajax Loading加载功能。分享给大家供大家参考,具体如下:

var xmlHttp;
function createXmlHttpReq() {
  if(window.ActiveXObject) {
    xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
  } else if(window.XMLHttpRequest) {
    xmlHttp = new XMLHttpRequest();
  }
}
function funMy(url) {
  createXmlHttpReq();
  try {
    xmlHttp.onreadystatechange = cb;//一定要在open()前,下边会有说明。在此处犯错了
    xmlHttp.open("GET","for.php?id="+url,true);
    xmlHttp.send(null);
  } catch(e) {
    alert("您访问的资源不存在");
  }
}
//回调函数
function cb() {
  if(xmlHttp.readyState==1) {
    alert("1-------------->");
    //在Google Chrome 浏览器里不显示loading图片,三秒后显示内容,问题已解决,下边有说明
    document.getElementById('ajax').innerHTML = "<img src=loading2.gif>";
    //document.getElementById('ajax').innerHTML = "Loading......";
  }
  if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
      var data = xmlHttp.responseText;
      document.getElementById('ajax').innerHTML = data;
  }
}

测试的时候,被 Chrome 给绊着了。请看下边解释:

这样写本来就不会接到.readyState==1的回应

因为1是表示已经调用.open()完成

但是.open()在.onreadystatechange事件前就被调用了,所以你应该不可能接到.readyState==1的回应

故,想接到.readyState==1 =>.onreadystatechange必须在.open()之前
那么为什么有时候接到呢?

因为你使用同一个全局变量...在连续操作时有可能会因为一个xhr请求还在等候php而又将它再次初始化引发

应该先决定数据的处理方式onreadystatechange,在送出要处理的数据open()

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
怎样在PHP中通过ADO调用Asscess数据库和COM程序
Oct 09 PHP
php简单提示框alert封装函数
Aug 08 PHP
php增删改查示例自己写的demo
Sep 04 PHP
Linux下创建nginx脚本-start、stop、reload…
Aug 03 PHP
PHP获取文件夹内文件数的方法
Mar 12 PHP
PHP图像处理类库MagickWand用法实例分析
May 21 PHP
在php中设置session用memcache来存储的方法总结
Jan 14 PHP
PHP的PDO常用类库实例分析
Apr 07 PHP
PHP标准类(stdclass)用法示例
Sep 28 PHP
浅谈php和js中json的编码和解码
Oct 24 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 15 PHP
PHP重载基础知识回顾
Sep 10 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
Dec 28 #PHP
PHP执行shell脚本运行程序不产生core文件的方法
Dec 28 #PHP
PHP MYSQL简易交互式站点开发
Dec 27 #PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
Dec 27 #PHP
PHP面向对象程序设计类的定义与用法简单示例
Dec 27 #PHP
PHP面向对象程序设计OOP继承用法入门示例
Dec 27 #PHP
记录一次排查PHP脚本执行卡住的问题
Dec 27 #PHP
You might like
php strrpos()与strripos()函数
2013/08/31 PHP
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
php正则表达式获取内容所有链接
2015/07/24 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
PHP的mysqli_rollback()函数讲解
2019/01/23 PHP
PHP+Redis开发的书签案例实战详解
2019/07/09 PHP
raphael.js绘制中国地图 地图绘制方法
2014/02/12 Javascript
jquery的each方法使用示例分享
2014/03/25 Javascript
javascript:void(0)的问题使用探讨
2014/04/10 Javascript
jQuery基于ajax实现星星评论代码
2015/08/07 Javascript
基于javascript数组实现图片轮播
2016/05/02 Javascript
深入理解React中es6创建组件this的方法
2016/08/29 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
javascript入门之string对象【新手必看】
2016/11/22 Javascript
原生JS获取元素集合的子元素宽度实例
2016/12/14 Javascript
python使用Berkeley DB数据库实例
2014/09/26 Python
Python中处理字符串的相关的len()方法的使用简介
2015/05/19 Python
Python中unittest模块做UT(单元测试)使用实例
2015/06/12 Python
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
详解在Python的Django框架中创建模板库的方法
2015/07/20 Python
对python中return和print的一些理解
2017/08/18 Python
pandas 获取季度,月度,年度首尾日期的方法
2018/04/11 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
2018/12/20 Python
Python中的集合介绍
2019/01/28 Python
Django如何使用第三方服务发送电子邮件
2019/08/14 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
2020/02/18 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
用React加CSS3实现微信拆红包动画效果
2017/03/13 HTML / CSS
Nisbets爱尔兰:英国最大的厨房和餐饮设备供应商
2019/01/26 全球购物
解释下面关于J2EE的名词
2013/11/15 面试题
行政助理工作职责范本
2014/03/04 职场文书
祖国在我心中演讲稿300字
2014/05/04 职场文书
Python中使用ipython的详细教程
2021/06/22 Python
Python requests用法和django后台处理详解
2022/03/19 Python