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 相关文章推荐
ThinkPHP3.0略缩图不能保存到子目录的解决方法
Sep 30 PHP
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
Jun 08 PHP
解析php常用image图像函数集
Jun 24 PHP
解析php 版获取重定向后的地址(代码)
Jun 26 PHP
PHP 如何利用phpexcel导入数据库
Aug 24 PHP
php旋转图片90度的方法
Nov 07 PHP
PHP中使用数组指针函数操作数组示例
Nov 19 PHP
php+ajax实时刷新简单实例
Feb 25 PHP
php 生成Tab键或逗号分隔的CSV
Sep 24 PHP
laravel创建类似ThinPHP中functions.php的全局函数
Nov 26 PHP
详解yii2实现分库分表的方案与思路
Feb 03 PHP
根据key删除数组中指定的元素实现方法
Mar 02 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二进制流 逐bit的低位在前算法(详解)
2013/06/13 PHP
ThinkPHP空模块和空操作详解
2014/06/30 PHP
php获取网站百度快照日期的方法
2015/07/29 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
php实现数组中出现次数超过一半的数字的统计方法
2018/10/14 PHP
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
IE中jquery.form中ajax提交没反应解决方法分享
2012/09/11 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
javascript跨域请求包装函数与用法示例
2016/11/03 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
解决layui弹框失效的问题
2019/09/09 Javascript
python实现问号表达式(?)的方法
2013/11/27 Python
Python实现将Excel转换为json的方法示例
2017/08/05 Python
详解Python字典的操作
2019/03/04 Python
Python 使用生成器代替线程的方法
2020/08/04 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
详解Python爬虫爬取博客园问题列表所有的问题
2021/01/18 Python
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
BASIC HOUSE官方旗舰店:韩国著名的服装品牌
2018/09/27 全球购物
澳大利亚领先的武术用品和健身器材供应商:SMAI
2019/03/24 全球购物
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
俄罗斯游戏商店:Buka
2020/03/01 全球购物
试解释COMMIT操作和ROLLBACK操作的语义
2014/07/25 面试题
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/09/18 面试题
毕业评语大全
2014/05/04 职场文书
社区先进事迹材料
2014/05/19 职场文书
保险专业求职信
2014/07/07 职场文书
学校周年庆活动方案
2014/08/22 职场文书
竞聘演讲稿开场白
2014/08/25 职场文书
《唯一的听众》教学反思
2016/02/18 职场文书
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android