异步通信在生活中的例子_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程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486012.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机仿真在机械行业中的应用,计算机仿真技术机械行业应用

计算机仿真技术在机械行业应用计算机仿真技术在机械行业应用14级在职机械工程硕士 刘中华摘 要: 计算机仿真技术是以多种学科和理论为基础,以计算机及其相应的软件为工具,通过虚拟试验的方法来分析和解决问题的一门综合性技术。计算机仿真(模拟)早期称为…

svn 修改文件的可执行权限

设置svn可执行权限,svn:executable 1)svn propset svn:executable on 文件名/文件夹名 2)svn propset svn:executable on test.c svn ci 转载于:https://www.cnblogs.com/wangliangblog/p/9072690.html

「九章」刷屏的背后:万字长文解析,量子计算机和电子计算机各有何优劣?

来源:机器学习研究组订阅号近日,中科大校友、UC伯克利在读博士、知乎用户SIY.Z 在一篇近两万字的长文中,详细分析了“量子计算机和传统电子计算机在算法方面的优劣势”。以下是原文内容:这是一篇我很早以前就想写的文章。我的目的是给稍有数学…

关于计算机的网络作文,关于网络世界的作文

关于网络世界的作文在学习、工作乃至生活中,大家对作文都不陌生吧,根据写作命题的特点,作文可以分为命题作文和非命题作文。那么你有了解过作文吗?以下是小编精心整理的关于网络世界的作文,欢迎阅读,希望大…

python实现邮件客户端_利用python实现简单的邮件发送客户端示例

脚本过于简单,供学习和参考。主要了解一下smtplib库的使用和超时机制的实现。使用signal.alarm实现超时机制。#!/usr/bin/env python# -*- coding: utf-8 -*-import timeimport sysimport loggingimport smtplibimport socketimport signalimport ConfigParserfrom …

xml--Schema约束

<?xml version"1.0" encoding"UTF-8"?> <!-- xmlns: xml namespace&#xff1a;名称空间/ 命名空间 targeNamespace&#xff1a;目标名称空间&#xff0c;下面定义的那些元素都与这个名称空间绑定上 elementFormDefault&#xff1a; 元素的格式…

js中实现页面跳转(返回前一页、后一页)

一&#xff1a;JS 重载页面&#xff0c;本地刷新,返回上一页 代码如下:<a href"javascript:history.go(-1)">返回上一页</a> <a href"javascript:location.reload()">重载页面&#xff0c;本地刷新</a> <a href"javascri…

stm32 文件系统dma大小_STM32 DMA使用详解

DMA部分我用到的相对简单&#xff0c;当然&#xff0c;可能这是新东西&#xff0c;我暂时还用不到它的复杂功能吧。下面用问答的形式表达我的思路。DMA有什么用&#xff1f;直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预&…

管理计算机域内置账户改为用户账户,“管理计算机(域)的内置帐户”我给它改了名...

在Windows XP中&#xff0c;Administrator帐户是终极管理员&#xff0c;如果你创建了其他管理员帐户&#xff0c;那么该帐户就会从欢迎屏幕上被隐藏。这里需要注意的是&#xff0c;仅仅是从欢迎屏幕上被隐藏&#xff0c;该帐户仍然存在。如果你仍然需要使用这个帐户&#xff0c…

程序架构--BS,CS

程序架构 C/S(client/server) QQ 微信 LOL 优点&#xff1a;有一部分代码写在客户端&#xff0c;用户体验比较好 缺点&#xff1a;服务器更新&#xff0c;客户端也随着更新&#xff0c;占用资源大 B/S(browser/server) 网页游戏&#xff1a;WebQQ ... 优点&#xff1a;客…

被称为“第五代 AI”的神经形态计算进展到哪一步了?

来源&#xff1a;北京物联网智能技术应用协会AI可以像人脑一样运作吗&#xff1f;几十年来&#xff0c;研究人员一直在问这个问题&#xff0c;这个大家长期求索的问题引起了质疑、嘲笑、轻蔑等不同态度。但是现在&#xff0c;神经形态计算让世界变得更美好的梦想更近了一些。当…

AngularJS学习笔记(一)

一.基本指令 1、ng-app" " 指令初始化一个 AngularJS 应用程序,定义angularJS的使用范围;tips:一个页面里创建多个 ng-app 手动加载即可:var app1 angular.module("app1", []); var app2 angular.module("app2", []); angular.bootstrap(docum…

oc 画一个圆弧_UG建模一个蜗杆的方法,纯手工建模无插件

上次我们画了一个蜗杆&#xff0c;今天就来建模一个涡轮模型&#xff0c;也是非常简单。这次还是无尺寸的随意建模&#xff0c;做出这么一个涡轮&#xff0c;来看看建模方法吧&#xff01;1 首先在XY平面上绘制一个直径100的圆&#xff0c;上下拉伸10mm2 对圆柱上下面倒斜角3mm…

计算机基本网络测试命令实验报告,网络连通性测试与网络命令验证实验报告

网络连通性测试与网络命令验证实验报告西工大计算机网络原理实验报告网络原理实验报告实验名称&#xff1a; 网络连通性测试与网络命令验证 日期&#xff1a; 2015.11&#xff0e;09 班级&#xff1a;学号&#xff1a; 姓名&#xff1a;【一】 预习内容5个常用网络命令&#xf…

Leetcode--11. 盛水最多的容器

给定 n 个非负整数 a1&#xff0c;a2&#xff0c;...&#xff0c;an&#xff0c;每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线&#xff0c;垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多…

《城市大脑全球标准研究报告》发布会将于12月23号在北京举办

城市大脑全球标准研究组《城市大脑全球标准研究报告》发布会将于2020年12月23日下午在北京海淀区城市大脑展览厅举办&#xff0c;发布会除了报告发布&#xff0c;智能产业专家演讲&#xff0c;也将参观海淀城市大脑的发展情况。欢迎新闻媒体、科研机构、科技企业、政府部门的记…

竞态条件与临界区

在同一程序中运行多个线程本身不会导致问题&#xff0c;问题在于多个线程访问了相同的资源。如&#xff0c;同一内存区&#xff08;变量&#xff0c;数组&#xff0c;或对象&#xff09;、系统&#xff08;数据库&#xff0c;web services等&#xff09;或文件。实际上&#xf…

java 实现打印条形码_条码打印软件中如何设置条形码下面的字符间距?

条形码有两部分组成&#xff0c;上面是黑白条图案&#xff0c;用于扫描设备的识别&#xff0c;下面是条形码数据&#xff0c;方便在没有扫描设备的情况下可以手动去搜索相关的信息。一般用条码打印软件制作条形码&#xff0c;下面的条形码数据间距是自动生成的&#xff0c;而在…

计算机科学分为几个部分,计算机由几部分组成各部分的功能是什么

推荐回答一、数值计算计算机广泛地应用于科学和工程技术方面的计算&#xff0c;这是计算机应用的一个基本方面&#xff0c;也是我们比较熟悉的。如&#xff1a;人造卫星轨迹计算&#xff0c;导弹发射的各项参数的计算&#xff0c;房屋抗震强度的计算等。二、数据处理用计算机对…

用跑得最慢的电脑程序,理解最高深的哥德巴赫猜想

五条规则的图灵机可视化。每列像素代表一步计算&#xff0c;步骤从左到右。黑色代表1。最右边表示图灵机的停机。&#xff08;图片来源&#xff1a;Peter Krumins/Quanta Magazine&#xff09;文章来源&#xff1a;环球科学“忙碌的河狸”这个问题的目的是为了找到运行时间最长…