本文实例讲述了AJAX简单异步通信的方法。分享给大家供大家参考。具体分析如下:

客户端:向服务器发出一个空请求。

代码如下:

XMLHttpRequest

var xmlHttp;

function createXMLHttpRequest(){

if(window.ActiveXObject)

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

else if(window.XMLHttpRequest)

xmlHttp = new XMLHttpRequest();

}

function startRequest(){

createXMLHttpRequest();

xmlHttp.open("GET","9-1.aspx",true);

xmlHttp.onreadystatechange = function(){

if(xmlHttp.readyState == 4 && xmlHttp.status == 200)

alert("服务器返回: " + xmlHttp.responseText);

}

xmlHttp.send(null);

}

服务器端:向客户端直接返回一个字符串。

代码如下:

Response.Write("异步测试成功,很高兴");

%>

问题一:

由于IE 浏览器会自动缓存异步通信的结果,不会实时更新服务器的返回结果。(但Firefox 会正常刷新)

为了解决异步连接服务器时IE 的缓存问题,更改客户端代码如下:

var sUrl = "9-1.aspx?" + new Date().getTime(); //地址不断的变化

xmlHttp.open("GET",sUrl,true);

在访问的服务器地址末尾添加一个当前时间的毫秒数参数,使得每次请求的URL地址不一样,从而欺骗IE 浏览器来解决IE 缓存导致的更新问题。

问题二:

当测试程序时,如果客户端和服务器端都在同一台计算机上时,异步对象返回当前请求的http状态码 status == 0 ,于是再次更改客户端代码如下:

//if(xmlHttp.readyState == 4 && xmlHttp.status == 200)

if( xmlhttp.readyState == 4)

{

if( xmlhttp.status == 200 || //status==200 表示成功!

xmlhttp.status == 0 ) //本机测试时,status可能为0。

alert("服务器返回: " + xmlHttp.responseText);

}

于是,最终的客户端代码如下:

XMLHttpRequest

var xmlHttp;

function createXMLHttpRequest(){

if(window.ActiveXObject)

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

else if(window.XMLHttpRequest)

xmlHttp = new XMLHttpRequest();

}

function startRequest(){

createXMLHttpRequest();

var sUrl = "9-1.aspx?" + new Date().getTime(); //地址不断的变化

xmlHttp.open("GET",sUrl,true);

xmlHttp.onreadystatechange = function(){

//if(xmlHttp.readyState == 4 && xmlHttp.status == 200)

if( xmlhttp.readyState == 4)

{

if( xmlhttp.status == 200 || //status==200 表示成功!

xmlhttp.status == 0) //本机测试时,status可能为0。

alert("服务器返回: " + xmlHttp.responseText);

}

}

xmlHttp.send(null);

}

希望本文所述对大家的Ajax程序设计有所帮助。

异步通信在生活中的例子_AJAX简单异步通信实例分析相关推荐

  1. 异步通信在生活中的例子_聊聊工作中经常遇到的“异步”,你掌握了多少

    在我们编程的时候,经常会遇到一个概念--异步,诸如异步通信,异步线程,异步代码,异步调用,异步编程等等,那么 什么是异步呢? 为什么要异步? 异步的典型场景是什么? 如何使用异步呢? ...... 异 ...

  2. python asyncio教程_python中使用asyncio实现异步IO实例分析

    1.说明 Python实现异步IO非常简单,asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持. asyncio的编程模型就是一个消息循环.我们从asyncio模块中直接 ...

  3. python怎么处理数据_python中scrapy处理项目数据的实例分析

    在我们处理完数据后,习惯把它放在原有的位置,但是这样也会出现一定的隐患.如果因为新数据的加入或者其他种种原因,当我们再次想要启用这个文件的时候,小伙伴们就会开始着急却怎么也翻不出来,似乎也没有其他更好 ...

  4. java商城项目中多线程执行_java多线程中执行多个程序的实例分析

    我们知道多线程因为同时处理子线程的能力,对于程序运行来说,能够达到很高的效率.不过很多人对于多线程的执行方法还没有尝试过,本篇我们将为大家介绍创建线程的方法,在这个基础上,对程序执行多条命令的方法进行 ...

  5. 计算机软件吸附效应,试举出生活中的例子说明吸附现象的实际意义?

    生活中的吸附现象例子如下: 1.废气和废水的处理,如从高炉废气中回收一氧化碳和二氧化碳,从炼厂废水中脱除酚等有害物质. 2.吸附槽.用于吸附操作的搅拌槽,如在吸附槽中用活性白土精制油品或糖液. 3.固 ...

  6. linux死锁的例子,操作系统教程—Linux实例分析 孟庆昌 第8章 死锁new.ppt

    操作系统教程-Linux实例分析 孟庆昌 第8章 死锁new.ppt 第8章 死锁 8.1 概述 8.2 产生死锁的条件 8.3 死锁的预防 8.4 死锁的避免 8.5 死锁的检测与恢复 8.6 处理 ...

  7. 用python 修改word中表格数据,插入图片 +实例分析

    今天学习了关于word表格修改数据,插入图片的知识.Word表格跟对普通的文章段落处理不太一样,下面我就用我学校的请假条表格来带大家一一分析. 1.导入python-docx库 在cmd中导入该库 p ...

  8. Android Studio中的RecyclerView的使用方法实例分析

    RecyclerView的使用方法实例分析 话不多说直接上代码 主文件的布局文件,定义一个RecyclerView列表 <?xml version="1.0" encodin ...

  9. 最简单的神经网络的例子,神经网络简单应用实例

    什么叫神经网络? 南搞小孩给出基本的概念:一.一些基本常识和原理[什么叫神经网络?]人的思维有逻辑性和直观性两种不同的基本方式. 逻辑性的思维是指根据逻辑规则进行推理的过程:它先将信息化成概念,并用符 ...

最新文章

  1. Maya和Arnold的高级照明实践
  2. POJ 2236 Wireless Network 并查集
  3. 修改Tomcat可支持get传参方式的url长度,get形式
  4. 面向对象-多态与多态性
  5. 基于FPGA的前向纠错算法
  6. 有标号的DAG计数 II
  7. 计算机描绘的基因结构图,利用IBS软件画基因mRNA的结构图
  8. 【安装包】apache-tomcat-8.5.45-windows-x64
  9. 如何设置mysql数据库连接池的大小
  10. Mendeley-一款免费好用的文献管理软件
  11. 了解CompletableFuture
  12. 解析ESX SERVER故障数据恢复方法
  13. python统计不同字符的个数
  14. 2020年创业风口:社交电商
  15. SpringBoot配置与应用 SpringBoot与(Spring和springmvc的区别)
  16. python中的filter()函数
  17. 微信阅读原文直接打开浏览器_点击链接打开微信再跳转到微信内部浏览器的解决方案...
  18. linux的地址随机化ASLR,[翻译]Linux (x86) Exploit 开发系列教程之六(绕过ASLR - 第一部分)...
  19. Unity开发日记【第七天】——怪物的移动和动画及类的实现
  20. 【lizhi125】各大搜索引擎网站提交入口

热门文章

  1. word 插入代码_突破Word页码困境,这招简单又实用的自动更新法,90%的人还不会!...
  2. 四元数c语言,C + OpenGL四元数
  3. Python基础(五)--函数
  4. 缺失值处理 - 拉格朗日插值法 - Python代码
  5. 编译html成qch,在应用程序编译过程中运行qcollectiongenerator
  6. 美团点评移动网络优化实践
  7. 论文浅尝 - EMNLP2020 | 基于规则引导的协作 agent 知识图谱推理学习
  8. 论文浅尝 | 从树结构的长短期记忆网络改进语义表示
  9. 注意力机制-深度学习中的注意力机制+注意力机制在自然语言处理中的应用
  10. 自然语言处理语言资源项目