ajax分析 学习

文章讲述了XMLHttpRequest在不同浏览器环境下的兼容性处理,特别是通过ActiveXObject和Msxml2.XMLHTTP/Microsoft.XMLHTTP对象的尝试。同时提到了Android开发面试中的热门话题,包括面试真题、源码阅读的重要性。
摘要由CSDN通过智能技术生成

} catch (e2) {

xmlHttp = false;

}

}

xmlHttp = new ActiveXObject(“Msxml2.XMLHTTP”);     xmlHttp = new ActiveXObject(“Microsoft.XMLHTTP”);这两行代码就是尝试使用两个版本的 MSXML 创建对象,如果失败则使用另一个版本创建该对象。如果都不成功,则将 xmlHttp 变量设为 false,告诉您的代码出现了问题。出现这种情况,可能是因为安装了非 Microsoft 浏览器,需要使用不同的代码。

处理 Mozilla 和非 Microsoft 浏览器

var xmlHttp = new XMLHttpRequest object;  这行简单得多的代码在 Mozilla、Firefox、Safari、Opera 以及基本上所有以任何形式或方式支持 Ajax 的非 Microsoft 浏览器中,创建了 XMLHttpRequest 对象。

支持所有浏览器

var xmlHttp = false;

try {

xmlHttp = new ActiveXObject(“Msxml2.XMLHTTP”);

} catch (e) {

try {

xmlHttp = new ActiveXObject(“Microsoft.XMLHTTP”);

} catch (e2) {

xmlHttp = false;

}

}

if (!xmlHttp && typeof XMLHttpRequest != ‘undefined’) {

xmlHttp = new XMLHttpRequest();

}

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

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

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

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

2)如果失败,再尝试 Microsoft.XMLHTTP 对象。

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

最后,xmlHttp 应该引用一个有效的 XMLHttpRequest 对象,无论运行什么样的浏览器。

Ajax请求/响应

发出请求

您已经有了一个崭新的 XMLHttpRequest 对象,现在让它干点活儿吧。首先需要一个 Web 页面能够调用的 JavaScript 方法。接下来就是在所有 Ajax 应用程序中基本都雷同的流程:

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

2、建立要连接的 URL。

3、打开到服务器的连接。

4、设置服务器在完成后要运行的函数。

5、发送请求。

function callServer() {

// 获取ID为city的表单信息

var city = document.getElementById(“city”).value;

var state = document.getElementById(“state”).value;

// 判断都不为空

if ((city == null) || (city == “”)) return;

if ((state == null) || (state == “”)) return;

// 创建要发送的URl

var url = “/scripts/getCode.aspx?city=” + escape(city) + “&state=” + escape(state);

// 打开连接

xmlHttp.open(“GET”, url, true);

// 请求返回执行的函数

xmlHttp.onreadystatechange = updatePage;

// 发送请求

xmlHttp.send(null);

}

开始的代码使用是基本 JavaScript 代码获取几个表单字段的值。然后设置一个 aspx页面 脚本作为链接的目标。要注意脚本 URL 的指定方式,city 和 state(来自表单)使用,简单的 GET 参数附加在 URL 之后。

然后打开一个连接,这是您第一次看到使用 XMLHttpRequest。其中指定了连接方法(GET)和要连接的 URL。最后一个参数如果设为 true,那么将请求一个异步连接。如果使用 false,那么代码发出请求后将等待服务器返回的响应。如果设为 true,当服务器在后台处理请求的时候用户仍然可以使用表单(甚至调用其他 JavaScript 方法)。

xmlHttp(XMLHttpRequest 对象实例)的 onreadystatechange 属性可以告诉服务器在运行完成后(可能要用五分钟或者五个小时)做什么。因为代码没有等待服务器,必须让服务器知道怎么做以便您能作出响应。在这个示例中,如果服务器处理完了请求,一个特殊的名为 updatePage() 的方法将被触发。

最后,使用值 null 调用 send()。因为已经在请求 URL 中添加了要发送给服务器的数据(city 和 state),所以请求中不需要发送任何数据。这样就发出了请求,服务器按照您的要求工作。

处理响应

什么也不要做,直到 xmlHttp.readyState 属性的值等于4(就绪状态)。

服务器将把响应填充到 xmlHttp.responseText 属性中。 使用xmlHttp.responseText 属性获得服务器的响应。

if(req.readyState==4){

if(req.status == 200 ){

var msg = req.responseXML.getElementsByTagName(“msg”)[0];

document.getElementById(“result”).innerHTML = msg.childNodes[0].nodeValue;

}

}

validate.jsp文档:

最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上我搜集整理的2019-2021BATJ 面试真题解析,我把大厂面试中常被问到的技术点整理成了PDF,包知识脉络 + 诸多细节。

节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

《960全网最全Android开发笔记》

《379页Android开发面试宝典》

历时半年,我们整理了这份市面上最全面的安卓面试题解析大全
包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。

如何使用它?

1.可以通过目录索引直接翻看需要的知识点,查漏补缺。
2.五角星数表示面试问到的频率,代表重要推荐指数

《507页Android开发相关源码解析》

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。

腾讯、字节跳动、阿里、百度等BAT大厂 2019-2021面试真题解析

资料太多,全部展示会影响篇幅,暂时就先列举这些部分截图
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
)]

腾讯、字节跳动、阿里、百度等BAT大厂 2019-2021面试真题解析

[外链图片转存中…(img-S3nsAuJN-1714380172358)]

资料太多,全部展示会影响篇幅,暂时就先列举这些部分截图
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

  • 26
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值