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对象在IE和Firefox中创建方式有没有不同?
有,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对象。