Ajax面试必备知识点

1、什么是ajax,为什么要使用Ajax(请谈一下你对Ajax的认识)

什么是ajax:

AJAX是“Asynchronous JavaScript and XML”的缩写。是指一种创建交互式网页应用的网页开发技术。AJAX不是一个新的编程语言,但是它是一个使用已有标准的新的编程技术。使用AJAX可以创建更好,更快,用户界面更友好的Web应用。

AJAX技术基于Javascript和HTTP Request

Ajax包含下列技术:

基于web标准(standards-based presentation)XHTML+CSS的表示;

使用 DOM(Document Object Model)进行动态显示及交互;

使用 XML 和 XSLT 进行数据交换及相关操作;

使用 XMLHttpRequest 进行异步数据查询、检索;

使用 JavaScript 将所有的东西绑定在一起。

2、Ajax技术体系的组成部分有哪些?

HTML,css,dom,xml,xmlHttpRequest,javascript(主要是javascript和XML)

为什么要用ajax:

Ajax应用程序的优势在于:

1. 通过异步模式,提升了用户体验

2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用

3. Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。

3、AJAX应用和传统Web应用有什么不同? 

在传统的Javascript编程中,如果想得到服务器端数据库或文件上的信息,或者发送客户端信息到服务器,需要建立一个HTML form然后GET或者POST数据到服务器端。用户需要点击”Submit”按钮来发送或者接受数据信息,然后等待服务器响应请求,页面重新加载。

因为服务器每次都会返回一个新的页面, 所以传统的web应用有可能很慢而且用户交互不友好。

使用AJAX技术, 就可以使Javascript通过XMLHttpRequest对象直接与服务器进行交互

通过HTTP Request, 一个web页面可以发送一个请求到web服务器并且接受web服务器返回的信息(不用重新加载页面),展示给用户的还是通一个页面,用户感觉页面刷新,也看不到到Javascript后台进行的发送请求和接受响应。 

4、Ajax的最大的特点是什么?

Ajax可以实现动态不刷新(局部刷新),就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。

5、请介绍一下XMLHTTPREQUEST对象? 

Ajax的核心是JavaScript对象XMLHttpRequest。该对象在IE5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。通过XMLHttpRequest对象,Web开发人员可以在页面加载以后进行页面的局部更新。

6、介绍一下XMLHttpRequest对象的常用方法和属性?

方法:

(1)open();

书上解释: 用于设置请求的目标url请求方法, 以及其他参数信息

个人理解: 发送请求的页面在不刷新的情况能将参数传给服务器进行处理, 这个方法就是将这些个参数传送过去

XMLHttpRequest对象是通过调用open(method,url,asyncFlag,username,password)方法来进行初始化工作的,建立对服务器的调用。调用该方法将得到一个可以用来进行发送的对象,open可以有五个参数。

参数:

1, method:必需,用来指定发送请求的HTTP方法类型(GET,POST,PUT,DELETE,HEAD)参数要大写。

2, url:用于请求页面的URL地址,,可相对可绝对

3, asyncFlag:指定请求方式为同步还是异步, true为异步(默认), false为同步

4,如果需要服务器验证访问用户的情况,可以设置username和password。

(2)send();

书上解释: 用于向服务器发送具体请求, 如果声明为异步, 那么该方法将立即返回, 否则将等到接收到服务器响应为止

个人理解: 这个东西就是将一些参数以键值对的方式传送给服务器, 异步的话将立即返回服务器的响应, 做到不刷新页面进行数据处理就是用来发送参数的, GET方法下可以在url的后面写上参数的值, POST方法下只能在send()方法里面写上参数的键值对。

(3)setRequestHeader("header","value");

书上解释: 用于为请求的Http头设置值

个人理解: 和下面这个方法互相使用

(4)getResponseHeader("headerLabel");

书上解释: 返回设置的Http头信息

(5)abort();

书上解释:停止或者放弃当前的异步请求

个人理解: 使用了这个请求之后会直接停止getResult的回调函数, 让readyState属性的返回值直接为0(即未初始化)

(6)getAllResponseHeaders();

以字符串的形式返回完整的字符串信息

属性:

(1)onreadystatechange事件

书上解释: 用于指定状态改变时所触发的事件处理器

个人理解:在设置回调函数的时候经常用到, 所有的状态改变的时候都会触发这个事件处理器
每当readyState属性发生改变时,就好触发onreadystatechange事件,一般都要通过该事件来触发回传处理函数。

(2)readyState

书上解释: 用于获取请求的状态

个人理解: 通过返回的代码是多少来判断当前的状态是什么情况

请求的状态有5个返回值,分别是 0: 未初始化; 1: 正在加载; 2:已加载; 3:交互中; 4:完成

(3)responseText

书上解释: 获取服务器的响应, 表示为字符串

个人理解: response.getWrite().append("");将这个语句的内容返回到用户页面

(4) responseXML

书上解释: 用于获取服务器的响应, 表示为XML

(5)status

返回Http状态码——200:表示成功; 202:表示请求被接受, 但尚未成功; 400:错误的请求; 404:文件未找到; 500:内部服务器错误

(6)statusText

返回服务器的HTTP状态码,200对应ok  400对应not found

7、AJAX都有哪些优点和缺点?

ajax的优点

1、最大的优点是页面无刷新,用户的体验非常好。

2、使用异步方式与服务器通信,具有更加迅速的响应能力。

3、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。

4、基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。

ajax的缺点

1、ajax不支持浏览器back按钮,它可能破坏浏览器后退按钮的正常行为因为Ajax中采用了XML技术。

2、安全问题 AJAX暴露了与服务器交互的细节。

3、对搜索引擎的支持比较弱。

4、破坏了程序的异常机制。

5、不容易调试。

8、AJAX请求总共有多少种CALLBACK?

Ajax请求总共有八种Callback(回调函数)

(1)onSuccess

(2) onFailure

(3)onUninitialized

(4)onLoading

(5)onLoaded

(6)onInteractive 

(7)onComplete

(8) onException

9、在浏览器端如何得到服务器端响应的XML数据?

 XMLHttpRequest对象的responseXML属性

10、XMLHttpRequest对象在IEFirefox中创建方式有没有不同?

有,IE中通过new ActiveXObject()得到,Firefox中通过new XMLHttpRequest()得到。

11、什么是XML?

XML是扩展标记语言,能够用一系列简单的标记描述数据。

12、XML的解析方式 

常用的有dom解析和sax解析。dom解析是一次性读取XML文件并将其构造为DOM对象供程序使用,优点是操作方便,但是比较耗内存。Sax是按事件驱动的方式解析的,占用内存少,但是编程复杂。

13、介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?

$() 方法是在DOM中使用过于频繁的 document.getElementById() 方法的一个便利的简写,就像这个DOM方法一样,这个方法返回参数传入的id的那个元素。

$F()函数是一个“快捷键”,它能用于返回任何表单输入控件的值,比如text box,drop-down list。这个方法也能用元素id或元素本身做为参数。

$A()函数能把它接收到的单个的参数转换成一个Array对象。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值