异步通信在生活中的例子_AJAX简单异步通信实例分析
本文实例讲述了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简单异步通信实例分析相关推荐
- 异步通信在生活中的例子_聊聊工作中经常遇到的“异步”,你掌握了多少
在我们编程的时候,经常会遇到一个概念--异步,诸如异步通信,异步线程,异步代码,异步调用,异步编程等等,那么 什么是异步呢? 为什么要异步? 异步的典型场景是什么? 如何使用异步呢? ...... 异 ...
- python asyncio教程_python中使用asyncio实现异步IO实例分析
1.说明 Python实现异步IO非常简单,asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持. asyncio的编程模型就是一个消息循环.我们从asyncio模块中直接 ...
- python怎么处理数据_python中scrapy处理项目数据的实例分析
在我们处理完数据后,习惯把它放在原有的位置,但是这样也会出现一定的隐患.如果因为新数据的加入或者其他种种原因,当我们再次想要启用这个文件的时候,小伙伴们就会开始着急却怎么也翻不出来,似乎也没有其他更好 ...
- java商城项目中多线程执行_java多线程中执行多个程序的实例分析
我们知道多线程因为同时处理子线程的能力,对于程序运行来说,能够达到很高的效率.不过很多人对于多线程的执行方法还没有尝试过,本篇我们将为大家介绍创建线程的方法,在这个基础上,对程序执行多条命令的方法进行 ...
- 计算机软件吸附效应,试举出生活中的例子说明吸附现象的实际意义?
生活中的吸附现象例子如下: 1.废气和废水的处理,如从高炉废气中回收一氧化碳和二氧化碳,从炼厂废水中脱除酚等有害物质. 2.吸附槽.用于吸附操作的搅拌槽,如在吸附槽中用活性白土精制油品或糖液. 3.固 ...
- linux死锁的例子,操作系统教程—Linux实例分析 孟庆昌 第8章 死锁new.ppt
操作系统教程-Linux实例分析 孟庆昌 第8章 死锁new.ppt 第8章 死锁 8.1 概述 8.2 产生死锁的条件 8.3 死锁的预防 8.4 死锁的避免 8.5 死锁的检测与恢复 8.6 处理 ...
- 用python 修改word中表格数据,插入图片 +实例分析
今天学习了关于word表格修改数据,插入图片的知识.Word表格跟对普通的文章段落处理不太一样,下面我就用我学校的请假条表格来带大家一一分析. 1.导入python-docx库 在cmd中导入该库 p ...
- Android Studio中的RecyclerView的使用方法实例分析
RecyclerView的使用方法实例分析 话不多说直接上代码 主文件的布局文件,定义一个RecyclerView列表 <?xml version="1.0" encodin ...
- 最简单的神经网络的例子,神经网络简单应用实例
什么叫神经网络? 南搞小孩给出基本的概念:一.一些基本常识和原理[什么叫神经网络?]人的思维有逻辑性和直观性两种不同的基本方式. 逻辑性的思维是指根据逻辑规则进行推理的过程:它先将信息化成概念,并用符 ...
最新文章
- Maya和Arnold的高级照明实践
- POJ 2236 Wireless Network 并查集
- 修改Tomcat可支持get传参方式的url长度,get形式
- 面向对象-多态与多态性
- 基于FPGA的前向纠错算法
- 有标号的DAG计数 II
- 计算机描绘的基因结构图,利用IBS软件画基因mRNA的结构图
- 【安装包】apache-tomcat-8.5.45-windows-x64
- 如何设置mysql数据库连接池的大小
- Mendeley-一款免费好用的文献管理软件
- 了解CompletableFuture
- 解析ESX SERVER故障数据恢复方法
- python统计不同字符的个数
- 2020年创业风口:社交电商
- SpringBoot配置与应用 SpringBoot与(Spring和springmvc的区别)
- python中的filter()函数
- 微信阅读原文直接打开浏览器_点击链接打开微信再跳转到微信内部浏览器的解决方案...
- linux的地址随机化ASLR,[翻译]Linux (x86) Exploit 开发系列教程之六(绕过ASLR - 第一部分)...
- Unity开发日记【第七天】——怪物的移动和动画及类的实现
- 【lizhi125】各大搜索引擎网站提交入口
热门文章
- word 插入代码_突破Word页码困境,这招简单又实用的自动更新法,90%的人还不会!...
- 四元数c语言,C + OpenGL四元数
- Python基础(五)--函数
- 缺失值处理 - 拉格朗日插值法 - Python代码
- 编译html成qch,在应用程序编译过程中运行qcollectiongenerator
- 美团点评移动网络优化实践
- 论文浅尝 - EMNLP2020 | 基于规则引导的协作 agent 知识图谱推理学习
- 论文浅尝 | 从树结构的长短期记忆网络改进语义表示
- 注意力机制-深度学习中的注意力机制+注意力机制在自然语言处理中的应用
- 自然语言处理语言资源项目