// JavaScript Document

/*创建XMLHttpRequest对象

*这段代码的核心分为三步:

1、建立一个变量 xmlHttp 来引用即将创建的 XMLHttpRequest 对象。 

2、尝试在 Microsoft 浏览器中创建该对象: 

1)尝试使用 Msxml2.XMLHTTP 对象创建它。

2)假设失败,再尝试 Microsoft.XMLHTTP 对象。 

3、假设仍然没有建立 xmlHttp。则以非 Microsoft 的方式创建该对象。

*/

function createXmlHttp(){

var xmlHttp = false;

try {

//在 Microsoft 浏览器上创建 XMLHttpRequest 对象

//假设使用较新版本号的 Internet Explorer,则须要使用对象 Msxml2.XMLHTTP

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

} catch (e) {

try {

//较老版本号的 Internet Explorer 则使用 Microsoft.XMLHTTP

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

} catch (e2) {

xmlHttp = false;

}

}

//在非 Microsoft 浏览器上创建 XMLHttpRequest 对象

if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {

xmlHttp = new XMLHttpRequest();

}

return xmlHttp;

}



/*发出请求:

在全部 Ajax 应用程序中基本都雷同的流程:





1、从 Web 表单中获取须要的数据。 

2、建立要连接的 URL。 

3、打开到server的连接。 

4、设置server在完毕后要执行的函数。 

5、发送请求。 

*/



function callServer() {

  // Get the city and state from the web form

  var city = document.getElementById("city").value;

  var state = document.getElementById("state").value;

  // Only go on if there are values for both fields

  if ((city == null) || (city == "")) return;

  if ((state == null) || (state == "")) return;

  // Build the URL to connect to

  var url = "/scripts/getZipCode.php?city=" + escape(city) + "&state=" + escape(state);

  // Open a connection to the server

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

  // Setup a function for the server to run when it's done

  xmlHttp.onreadystatechange = updatePage;

  // Send the request

  xmlHttp.send(null);

}

/*xmlHttp的 onreadystatechange 属性能够告诉server在执行完毕后做什么。

由于代码没有等待server,必须让server知道怎么做以便您能作出响应。

在这个演示样例中,假设server处理完了请求,一个特殊的名为 updatePage() 的方法将被触发。

须要特别注意的是该属性在代码中设置的位置 —— 它是在调用 send() 之前 设置的。

发送请求之前必须设置该属性,这样server在回答完毕请求之后才干查看该属性

*/



function updatePage() {

 if (request.readyState == 4)

if (request.status == 200)

alert("Server is done!");

else if (request.status == 404)

alert("Request URL does not exist");

else

alert("Error: status code is " + request.status);

}

XMLHttpRequest 的使用······的更多相关文章

  1. 2015·Fool's Day·NND

    本博文没有主旨,仅仅是记录. ============================ Date:2015/4/1 - April Fool's Day! Addr:ZhongHai ======== ...

  2. 为什么要阅读——兼分享《首先,打破一切常规》[中译文]:世界顶级管理者的成功秘诀/(美)马库斯·白金汉,(美)柯特·科夫曼 著

    <ctrlno=255632">首先,打破一切常规>[中译文]:世界顶级管理者的成功秘诀/(美)马库斯·白金汉,(美)柯特·科夫曼 著:鲍世修 等译 下载地址:http:/ ...

  3. 书列荐书 |《刻意练习》安德斯&#183;艾利克森,罗伯特&#183;普尔著

    花了两天的时间,一气呵成的读完了这本书.凝练的精华就是:首先,世界上并没有真正的天才这一说.基因可能会起作用,但是经过后天大量的刻意练习,基因的这种作用会弱化.刻意练习需要专注.及时的反馈,并根据反馈 ...

  4. SGU 183. Painting the balls( dp )

    dp..dp(i, j)表示画两个点为i-j, i的最优答案. dp(i, j) = min{ dp(i-j, k) } + cost[i] (1≤k≤M-j) 令f(i, j) = min{dp(i ...

  5. 开源企业IM-免费企业即时通讯-ENTBOOST V2014.183 Windows版本号正式宣布

    ENTBOOST,VERSION 2014.183 Windows(点击下载)版本号公布.主要添加PC端P2P(点对点)文件传输功能:公布安卓Android手机clientAPP 1.0版本号.公布苹 ...

  6. python练习:实现一个整数数组里面两个数之和为183的所有整数对

    l1 = [183,0,1,2,-184,367] num = [] for i in range (0,len(l1)): for l in range (i+1,len(l1)): if l1[i ...

  7. Android开发技术周报183学习记录

    Android开发技术周报183学习记录 教程 Android性能优化来龙去脉总结 记录 一.性能问题常见 内存泄漏.频繁GC.耗电问题.OOM问题. 二.导致性能问题的原因 1.人为在ui线程中做了 ...

  8. sgu 183. Painting the balls 动态规划 难度:3

    183. Painting the balls time limit per test: 0.25 sec.memory limit per test: 4096 KB input: standard ...

  9. JavaScript周报#183

    This week’s JavaScript news Read this issue on the Web | Issue Archive JavaScript Weekly Issue 183Ma ...

随机推荐

  1. 前端JavaScript高级面试笔记

    一.ES6 1.模块化 ES6通过export和import实现模块化 ES6的模块化的基本规则或特点, 欢迎补充: 1:每一个模块只加载一次, 每一个JS只执行一次, 如果下次再去加载同目录下同文件 ...

  2. django startproject xxx:报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 13: ordinal not in range(128)

    django startproject xxx:报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 13: o ...

  3. 【LOJ】#2510. 「AHOI / HNOI2018」道路

    题解 读题是做题关键 我们设\(dp[u][l][r]\)表示\(u\)节点上方没改\(l\)条公路和\(r\)条铁路 然后记忆化搜索,枚举这条点改左边还是右边 代码 #include <bit ...

  4. Linux 正则

    一.引用自:https://www.cnblogs.com/chensiqiqi/p/6285060.html 二.grep示例 grep -i   忽略大小写 grep -w 精准匹配 grep - ...

  5. python 包详解

    包 包是一种管理 Python 模块命名空间的形式,采用"点模块名称". 比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B . 就好像使用模块的时候,你不用担心不 ...

  6. python MySQL慢查询监控

    MySQL慢查询会话监控 #!/usr/bin/python # -*- coding: UTF-8 -*- from email.mime.text import MIMEText from ema ...

  7. 多线程学习笔记四之Condition实现分析

    目录 简介 等待队列 nextWaiter 源码分析 await() signal() signalAll() 总结 简介   在使用内置锁synchronized时,通过调用java.lang.Ob ...

  8. 关于dubbo和zookeeper 注册中心

    Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载.如果不想使用Sprin ...

  9. 错误跳转js

    <script type="text/javascript"> var t = 5; //倒计时的秒数 function showTime(){ document.ge ...

  10. 牛客网某比赛 I 小乐乐学博弈 博弈论

    题目大意: 有两堆石子\(n\)和\(m\),每次可以拿\(1 \sim k\)个 \(k >= |n - m|\) 问先手必胜? 把限制条件去掉才有意思 首先考虑两堆相等,那么先手怎么操作,后 ...