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 相关文章推荐
用PHP4访问Oracle815
Oct 09 PHP
利用static实现表格的颜色隔行显示的代码
Sep 02 PHP
一些被忽视的PHP函数(简单整理)
Apr 30 PHP
php学习笔记 面向对象的构造与析构方法
Jun 13 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
Oct 23 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
Nov 25 PHP
php实现通用的从数据库表读取数据到数组的函数实例
Mar 21 PHP
php实现数组按指定KEY排序的方法
Mar 30 PHP
php轻量级的性能分析工具xhprof的安装使用
Aug 12 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
Jul 20 PHP
Laravel 加载第三方类库的方法
Apr 20 PHP
PHP实现微信提现功能
Sep 30 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 IE中下载附件问题解决方法
2014/01/07 PHP
PHP中overload与override的区别
2017/02/13 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
jqueyr判断checkbox组的选中(示例代码)
2013/11/08 Javascript
JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)
2014/01/11 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
JavaScript中的时间处理小结
2016/02/24 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
2016/05/16 Javascript
jQuery控制div实现随滚动条滚动效果
2016/06/07 Javascript
JavaScript Promise 用法
2016/06/14 Javascript
jQuery实现遍历复选框的方法示例
2017/03/06 Javascript
VUE脚手架具体使用方法
2019/05/20 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
JavaScript实现点击出现子菜单效果
2021/02/08 Javascript
[50:28]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs KG
2018/04/01 DOTA
Python设计模式之代理模式实例
2014/04/26 Python
python生成IP段的方法
2015/07/07 Python
基于Django的ModelForm组件(详解)
2017/12/07 Python
python调用百度语音识别实现大音频文件语音识别功能
2018/08/30 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
python并发编程 Process对象的其他属性方法join方法详解
2019/08/20 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
Python json转字典字符方法实例解析
2020/04/13 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
Python实现手势识别
2020/10/21 Python
css3类选择器之结合元素选择器和多类选择器用法
2017/03/09 HTML / CSS
全球地下的服装和态度:Slam Jam
2018/02/04 全球购物
营销经理工作检讨书
2014/11/03 职场文书
2014年幼儿园安全工作总结
2014/11/10 职场文书
HTML页面滚动时部分内容位置固定不滚动的实现
2021/04/14 HTML / CSS
用python实现监控视频人数统计
2021/05/21 Python
浅谈Golang 切片(slice)扩容机制的原理
2021/06/09 Golang
Python3.10的一些新特性原理分析
2021/09/15 Python
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers