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 相关文章推荐
建站常用13种PHP开源CMS比较
Aug 23 PHP
PHP开发不能违背的安全规则 过滤用户输入
May 01 PHP
PHP spl_autoload_register实现自动加载研究
Dec 06 PHP
第七章 php自定义函数实现代码
Dec 30 PHP
phpmyadmin打开很慢的解决方法
Apr 21 PHP
ThinkPHP模板比较标签用法详解
Jun 30 PHP
kohana框架上传文件验证规则写法示例
Jul 14 PHP
XHProf报告字段含义的解析
May 17 PHP
PHP编写的图片验证码类文件分享
Jun 06 PHP
php微信高级接口群发 多客服
Jun 23 PHP
eclipse php wamp配置教程
Jun 30 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
May 23 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
phpmailer发送gmail邮件实例详解
2013/06/24 PHP
简单的php+mysql聊天室实现方法(附源码)
2016/01/05 PHP
PHP中list()函数用法实例简析
2016/01/08 PHP
javascript高亮效果的二种实现方法
2008/09/14 Javascript
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
JavaScript设置FieldSet展开与收缩
2009/05/15 Javascript
支持ie与FireFox的剪切板操作代码
2009/09/28 Javascript
jquery submit ie6下失效的原因分析及解决方法
2013/11/15 Javascript
js setTimeout()函数介绍及应用以倒计时为例
2013/12/12 Javascript
js使用eval解析json实例与注意事项分享
2014/01/18 Javascript
jQuery在页面加载时动态修改图片尺寸的方法
2015/03/20 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
2015/07/17 Javascript
javascript实现别踩白块儿小游戏程序
2015/11/22 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
node.js+express制作网页计算器
2016/01/17 Javascript
Vue.js中数组变动的检测详解
2016/10/12 Javascript
JS设计模式之访问者模式定义与用法分析
2018/02/05 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
JavaScript常见事件对象与操作实例总结
2019/01/05 Javascript
实现高性能javascript的注意事项
2019/05/27 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
Python实现动态加载模块、类、函数的方法分析
2017/07/18 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
python 矩阵增加一行或一列的实例
2018/04/04 Python
详解Django中间件的5种自定义方法
2018/07/26 Python
Python线程之定位与销毁的实现
2019/02/17 Python
Python判断对象是否相等及eq函数的讲解
2019/02/25 Python
python线程信号量semaphore使用解析
2019/11/30 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
Amara美国站:英国高端家居礼品网站,世界各地的奢侈家具品牌
2017/07/26 全球购物
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
材料成型及控制工程专业求职信
2014/06/19 职场文书
党员剖析材料范文
2014/09/30 职场文书
2015年乡镇工会工作总结
2015/05/19 职场文书
新学期感想
2015/08/10 职场文书