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 相关文章推荐
教你如何把一篇文章按要求分段
Oct 09 PHP
php利用cookie实现访问次数统计代码
May 19 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
Nov 07 PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
Jun 27 PHP
php实现字符串翻转的方法
Mar 27 PHP
PHP验证信用卡卡号是否正确函数
May 27 PHP
PHP实现冒泡排序的简单实例
May 26 PHP
php微信开发之带参数二维码的使用
Aug 03 PHP
php使用Jpgraph创建折线图效果示例
Feb 15 PHP
php微信公众号开发之答题连闯三关
Oct 20 PHP
laravel框架数据库配置及操作数据库示例
Oct 10 PHP
TP5框架实现签到功能的方法分析
Apr 05 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实现HTML页面静态化的方法
2015/11/04 PHP
浅谈Laravel队列实现原理解决问题记录
2017/08/19 PHP
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
jquery 日期控件datepicker属性详细解析
2013/11/08 Javascript
setTimeout自动触发一个js的方法
2014/01/15 Javascript
JavaScript使用focus()设置焦点失败的解决方法
2014/09/03 Javascript
JS实现弹性漂浮效果的广告代码
2015/09/02 Javascript
JavaScript实现的多个图片广告交替显示效果代码
2015/09/04 Javascript
整理Javascript数组学习笔记
2015/11/29 Javascript
js实现搜索框关键字智能匹配代码
2020/03/26 Javascript
Bootstrap图片轮播效果详解
2017/10/17 Javascript
利用angular、react和vue实现相同的面试题组件
2018/02/19 Javascript
史上最为详细的javascript继承(推荐)
2019/05/18 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
JS操作字符串转数字的常见方法示例
2019/10/29 Javascript
Python的Django框架中settings文件的部署建议
2015/05/30 Python
python通过加号运算符操作列表的方法
2015/07/28 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
2018/05/29 Python
Python计算两个矩形重合面积代码实例
2019/09/16 Python
深入浅析Python 函数注解与匿名函数
2020/02/24 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
关于webview适配H5上传照片或者视频文件的方法
2020/11/04 HTML / CSS
Levi’s西班牙官方网站:李维斯,著名的牛仔裤品牌
2020/08/20 全球购物
秋季运动会加油稿200字
2014/01/11 职场文书
企业后勤岗位职责
2014/02/28 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
公司介绍信范文
2015/01/31 职场文书
好好学习保证书
2015/02/26 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
暂住证证明
2015/06/19 职场文书
外科护士长工作总结
2015/08/12 职场文书
Html5通过数据流方式播放视频的实现
2021/04/27 HTML / CSS
Python预测分词的实现
2021/06/18 Python