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 相关文章推荐
手把手教你使用DedeCms V3的在线采集图文教程
Apr 03 PHP
PHP的单引号和双引号 字符串效率
May 27 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
Apr 22 PHP
php 表单提交大量数据发生丢失的解决方法
Mar 03 PHP
详谈PHP文件目录基础操作
Nov 11 PHP
IIS下PHP的三种配置方式对比
Nov 20 PHP
php继承中方法重载(覆盖)的应用场合
Feb 09 PHP
thinkPHP实现MemCache分布式缓存功能
Mar 23 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
Sep 22 PHP
简单解决微信文章图片防盗链问题
Dec 17 PHP
thinkPHP显示不出验证码的原因与解决方法分析
May 20 PHP
thinkphp5框架实现的自定义扩展类操作示例
May 16 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
农民和部队如何穿矿
2020/03/04 星际争霸
异世界新番又来了,同样是从零开始,男主的年龄降到5岁
2020/04/09 日漫
提升PHP执行速度全攻略(下)
2006/10/09 PHP
php 强制下载文件实现代码
2013/10/28 PHP
PHP使用json_encode函数时不转义中文的解决方法
2014/11/12 PHP
php实现window平台的checkdnsrr函数
2015/05/27 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
2018/08/21 PHP
javascript call和apply方法
2008/11/24 Javascript
js中格式化日期时间型数据函数代码
2010/11/08 Javascript
Knockoutjs的环境搭建教程
2012/11/26 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
2015/06/05 Javascript
JavaScript基本的输出和嵌入式写法教程
2015/10/20 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
JS绘制微信小程序画布时钟
2016/12/24 Javascript
jQuery图片轮播功能实例代码
2017/01/29 Javascript
Nodejs实现多房间简易聊天室功能
2017/06/20 NodeJs
JavaScript伪数组用法实例分析
2017/12/22 Javascript
浅谈Node.js爬虫之网页请求模块
2018/01/11 Javascript
JointJS JavaScript流程图绘制框架解析
2019/08/15 Javascript
基于Vue 撸一个指令实现拖拽功能
2019/10/09 Javascript
使用Python编写一个在Linux下实现截图分享的脚本的教程
2015/04/24 Python
Python中asyncore异步模块的用法及实现httpclient的实例
2016/06/28 Python
python实现上传下载文件功能
2020/11/19 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
基于python检查SSL证书到期情况代码实例
2020/04/04 Python
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
就业协议书怎么填
2014/04/11 职场文书
2014年向国旗敬礼活动总结
2014/09/27 职场文书
运动会闭幕词
2015/01/28 职场文书
企业投资意向书
2015/05/09 职场文书
保留意见审计报告
2015/06/05 职场文书
2015入党个人自传范文
2015/06/26 职场文书
《神奇的鸟岛》教学反思
2016/02/22 职场文书
2016优秀教师先进个人事迹材料
2016/02/25 职场文书
导游词范文之颐和园/重庆/云台山
2019/09/10 职场文书