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和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
Jul 03 PHP
解析php框架codeigniter中如何使用框架的session
Jun 24 PHP
PHP系统命令函数使用分析
Jul 05 PHP
php中引用符号(&amp;)的使用详解
Nov 13 PHP
PHP独立Session数据库存储操作类分享
Jun 11 PHP
php制作动态随机验证码
Feb 12 PHP
PHP实现递归无限级分类
Oct 22 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
Mar 07 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
May 16 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
Nov 10 PHP
PHP类的自动加载与命名空间用法实例分析
Jun 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 $_SERVER详解
2009/01/16 PHP
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
php小经验:解析preg_match与preg_match_all 函数
2013/06/29 PHP
XAMPP安装与使用方法详细解析
2013/11/27 PHP
php中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
php使用Swoole实现毫秒级定时任务的方法
2020/09/04 PHP
基于jquery的跨域调用文件
2010/11/19 Javascript
基于Jquery的标签智能验证实现代码
2010/12/27 Javascript
验证手机号码的JS方法分享
2013/09/10 Javascript
运用jQuery定时器的原理实现banner图片切换
2014/10/22 Javascript
nodejs教程之环境安装及运行
2014/11/21 NodeJs
jquery Easyui快速开发总结
2015/08/20 Javascript
百度地图给map添加右键菜单(判断是否为marker)
2016/03/04 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
解析AngularJS中get请求URL出现的跨域问题
2016/12/01 Javascript
Node.js使用orm2进行update操作时关联字段无法修改的解决方法
2017/06/13 Javascript
NodeJS如何实现同步的方法示例
2018/08/24 NodeJs
vue 本地服务不能被外部IP访问的完美解决方法
2018/10/29 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
[01:32]DOTA2 2015国际邀请赛中国区预选赛第四日战报
2015/05/29 DOTA
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
python MySQLdb Windows下安装教程及问题解决方法
2015/05/09 Python
Python文档生成工具pydoc使用介绍
2015/06/02 Python
Python如何使用k-means方法将列表中相似的句子归类
2019/08/08 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
如何理解python对象
2020/06/21 Python
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
点菜员岗位职责范本
2014/02/14 职场文书
清明节扫墓活动方案
2014/03/02 职场文书
机械制造专业毕业生求职信
2014/03/02 职场文书
大专应届毕业生求职信
2014/07/15 职场文书
公司总经理岗位职责
2015/04/01 职场文书
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle