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 相关文章推荐
PHPShop存在多个安全漏洞
Oct 09 PHP
PHP nl2br函数 将换行字符转成 &amp;lt;br&amp;gt;
Aug 21 PHP
一些被忽视的PHP函数(简单整理)
Apr 30 PHP
PHP实现把数字ID转字母ID
Aug 12 PHP
PHP实现获取图片颜色值的方法
Jul 11 PHP
php使用memcoder将视频转成mp4格式的方法
Mar 12 PHP
php根据一个给定范围和步进生成数组的方法
Jun 19 PHP
深入理解PHP JSON数组与对象
Jul 19 PHP
PHP实现的自定义数组排序函数与排序类示例
Nov 18 PHP
PHP中Trait及其应用详解
Feb 14 PHP
php通过pecl方式安装扩展的实例讲解
Feb 02 PHP
使用laravel根据用户类型来显示或隐藏字段
Oct 17 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 Directory 函数的详解
2013/03/07 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
PHP Cookei记录用户历史浏览信息的代码
2016/02/03 PHP
Symfony核心类概述
2016/03/17 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
Add Formatted Data to a Spreadsheet
2007/06/12 Javascript
jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)
2013/02/05 Javascript
JS获取农历日期具体实例
2013/11/14 Javascript
JS实现太极旋转思路分析
2016/12/09 Javascript
详解node中创建服务进程
2017/05/09 Javascript
深入理解react-router@4.0 使用和源码解析
2017/05/23 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
vue  elementUI 表单嵌套验证的实例代码
2019/11/06 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
Vue实现简单购物车功能
2020/12/13 Vue.js
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
[原创]pip和pygal的安装实例教程
2017/12/07 Python
Python实现的rsa加密算法详解
2018/01/24 Python
tensorflow学习教程之文本分类详析
2018/08/07 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
python实现3D地图可视化
2020/03/25 Python
css3利用transform变形结合事件完成扇形导航
2020/10/26 HTML / CSS
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
印度购物网站:TATA CLiQ
2017/11/23 全球购物
悬挂训练绳:TRX
2017/12/14 全球购物
美国正版电视节目和电影在线观看:Hulu
2018/05/24 全球购物
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
中学教师培训制度
2014/01/31 职场文书
《莫高窟》教学反思
2014/02/25 职场文书
敬老院标语
2014/06/27 职场文书
求职信内容一般写什么?
2015/03/20 职场文书
写给老师的保证书
2015/05/09 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
会计做账心得体会
2016/01/22 职场文书