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实现分页的一个示例
Oct 09 PHP
PHP 一个比较完善的简单文件上传
Mar 25 PHP
php验证session无效的解决方法
Nov 04 PHP
PHP中的流(streams)浅析
Jul 02 PHP
ZF框架实现发送邮件的方法
Dec 03 PHP
使用ThinkPHP生成缩略图及显示
Apr 27 PHP
php判断文件上传图片格式的实例详解
Sep 30 PHP
实例分析基于PHP微信网页获取用户信息
Nov 24 PHP
PHP实现二维数组中的查找算法小结
Jun 09 PHP
使用Laravel中的查询构造器实现增删改查功能
Sep 03 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
Apr 26 PHP
PHP文件操作简单介绍及函数汇总
Dec 11 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与flash as3 socket通信传送文件实现代码
2014/08/16 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
PHP引用返回用法示例
2016/05/28 PHP
php图像验证码生成代码
2017/06/08 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
拥抱模块化的JavaScript
2012/03/07 Javascript
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
javascript删除option选项的多种方法总结
2013/11/22 Javascript
使用js Math.random()函数生成n到m间的随机数字
2014/10/09 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
2015/06/19 Javascript
遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
2015/08/20 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
javascript日期验证之输入日期大于等于当前日期
2015/12/13 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
基于node.js之调试器详解
2017/08/22 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
vue实现条件判断动态绑定样式的方法
2018/09/29 Javascript
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
详解Python中的__init__和__new__
2014/03/12 Python
python正则表达式re模块详解
2014/06/25 Python
对python的文件内注释 help注释方法
2018/05/23 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
2019/08/05 Python
Python实现直方图均衡基本原理解析
2019/08/08 Python
python实现从ftp服务器下载文件
2020/03/03 Python
关于python中导入文件到list的问题
2020/10/31 Python
python xlsxwriter模块的使用
2020/12/24 Python
python中uuid模块实例浅析
2020/12/29 Python
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
Ajax的工作原理
2015/12/04 面试题
《一本男孩子必读的书》教学反思
2014/02/19 职场文书
2015年食品安全工作总结
2015/05/15 职场文书
国王的演讲观后感
2015/06/03 职场文书
2016五四青年节活动总结范文
2016/04/06 职场文书
HTML页面中使两个div并排显示的实现
2022/05/15 HTML / CSS