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 相关文章推荐
3
Oct 09 PHP
如何给phpadmin一个保护
Oct 09 PHP
php 静态变量与自定义常量的使用方法
Jan 26 PHP
配置php网页显示各种语法错误
Sep 23 PHP
10 个经典PHP函数
Oct 17 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
May 04 PHP
Yii2中SqlDataProvider用法示例
Sep 22 PHP
PHP magento后台无法登录问题解决方法
Nov 24 PHP
微信自定义分享php代码分析
Nov 24 PHP
PHP实现函数内修改外部变量值的方法示例
Dec 28 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
Oct 08 PHP
解决在laravel中auth建立时候遇到的问题
Oct 15 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
phpmyadmin操作流程
2006/10/09 PHP
利用php来自动调用不同服务器上的flash
2006/10/09 PHP
php trim 去除空字符的定义与语法介绍
2010/05/31 PHP
一个简单的网页密码登陆php代码
2012/07/17 PHP
yii,CI,yaf框架+smarty模板使用方法
2015/12/29 PHP
php-fpm中max_children的配置
2019/03/15 PHP
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
jquery实现图片灯箱明暗的遮罩效果
2013/11/15 Javascript
删除javascript中注释语句的正则表达式
2014/06/11 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
2016/08/11 Javascript
使用vue实现点击按钮滑出面板的实现代码
2017/01/10 Javascript
Mint UI 基于 Vue.js 移动端组件库
2017/11/07 Javascript
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
jstree中的checkbox默认选中和隐藏示例代码
2019/12/29 Javascript
使用PYTHON接收多播数据的代码
2012/03/01 Python
Python的面向对象思想分析
2015/01/14 Python
Python调用C++程序的方法详解
2017/01/24 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
简单了解python的break、continue、pass
2019/07/08 Python
python 负数取模运算实例
2020/06/03 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
市场营销管理毕业生自荐信
2014/03/03 职场文书
消防宣传口号
2014/06/16 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
2014年小学数学教师工作总结
2014/12/03 职场文书
2015世界地球日活动总结
2015/02/09 职场文书
廉洁自律证明
2015/06/24 职场文书