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 作用域解析运算符(::)
Jul 27 PHP
基于MySQL分区性能的详细介绍
May 02 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
Nov 26 PHP
ThinkPHP验证码使用简明教程
Mar 05 PHP
新浪SAE搭建PHP项目教程
Jan 28 PHP
浅谈PHP中JSON数据操作
Jul 01 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
May 17 PHP
thinkphp项目如何自定义微信分享描述内容
Feb 20 PHP
PHP的RSA加密解密方法以及开发接口使用
Feb 11 PHP
Laravel 实现数据软删除功能
Aug 21 PHP
php生成微信红包数组的方法
Sep 05 PHP
laravel请求参数校验方法
Oct 10 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面向对象全攻略 (四)构造方法与析构方法
2009/09/30 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
2013/06/13 PHP
解析如何去掉CodeIgniter URL中的index.php
2013/06/25 PHP
php中mt_rand()随机数函数用法
2014/11/24 PHP
用php代码限制国内IP访问我们网站
2015/09/26 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
js innerHTML 改变div内容的方法
2013/08/03 Javascript
js实现精美的图片跟随鼠标效果实例
2015/05/16 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
vue拦截器Vue.http.interceptors.push使用详解
2017/04/22 Javascript
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
2017/10/26 Javascript
通过fastclick源码分析彻底解决tap“点透”
2017/12/24 Javascript
JavaScript中EventLoop介绍
2018/01/22 Javascript
VUE DOM加载后执行自定义事件的方法
2018/09/07 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
微信小程序class封装http代码实例
2019/08/24 Javascript
JS相册图片抖动放大展示效果的示例代码
2021/01/29 Javascript
用Python写一个模拟qq聊天小程序的代码实例
2019/03/06 Python
python TF-IDF算法实现文本关键词提取
2019/05/29 Python
python实现对图片进行旋转,放缩,裁剪的功能
2019/08/07 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
HTML5 对各个标签的定义与规定:body的介绍
2012/06/21 HTML / CSS
Notino罗马尼亚网站:购买香水和化妆品
2019/07/20 全球购物
物流毕业生个人的自我评价
2014/02/13 职场文书
网络工程师专家职业发展路线
2014/02/14 职场文书
英语专业求职信
2014/07/08 职场文书
车辆安全隐患排查制度
2015/08/05 职场文书
2016年第16个全民国防教育日宣传活动总结
2016/04/05 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python
vue基于Teleport实现Modal组件
2021/05/31 Vue.js
vue项目多环境配置(.env)的实现
2021/07/21 Vue.js
python的netCDF4批量处理NC格式文件的操作方法
2022/03/21 Python
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
2022/04/06 Python