AJAX筆試面試題匯總


每次去面試前端,Ajax總是會被問到,以下文章是從百度上整理而來的干貨,不懂或腦袋秀逗的時候就過來look!look!!!

Ajax流程

操作XMLHttpRequest對象相關方法:

打開請求

XMLHttpRequest.open(傳遞方式,地址,是否異步請求)

准備就緒執行

XMLHttpRequest.onreadystatechange

獲取執行結果

首先你得定義一個全局變量來保存XMLHttpRequest對象,然后寫一個函數用來創建XMLHttpRequest對象

 1 var xmlHttp;
 3 function createXMLHttpRequest(){
 4  if(window.ActiveXObject){
 5        //這個是創建一個IE瀏覽器的XMLHttpRequest對象;
 6   xmlHttp=new ActiveXObject('Microsoft.XMLHTTP');
 7   
 8  }else{
 9        //這個是創建一個其它瀏覽器的XMLHttpRequest對象;
10   xmlHttp=new XMLHttpRequest();
11   
12  }
13 }
14 
15 再然后定義一個回調函數,用於處理你想處理的數據;
17 function handleStateChange(){
18  if(xmlHttp.readyState==4){
19   if(xmlHttp.status==200){
20 //在這里寫你要做的實現的功,就彈出一個消息吧;
21    alert("OK");
22   }
24  }
25 }

然后再定義一個函數用於與服務器端進行通信

1 function doSearch(){
2  //創建XMLHttpRequest對象;
3  createXMLHttpRequest();
4 //將回調函數賦值給XMLHttpRequest對象的onreadystatechange   方法;
5  xmlHttp.onreadystatechange=handleStateChange;
6  //調用XMLHttpRequest對象的open方法,並且給定相關參數
7  xmlHttp.open("GET","url",true);
8  xmlHttp.send(null);
9 }

然后在你要用的頁面當中的某個地方調用doSearch()方法就行了

例如:

 <input type="button" value="Search" onclick="doSearch();"/>

1、什么是ajax,為什么要使用Ajax(請談一下你對Ajax的認識)

什么是ajax:

AJAX是“Asynchronous JavaScript and XML”的縮寫。他是指一種創建交互式網頁應用的網頁開發技術。

Ajax包含下列技術:

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

使用 DOM(Document Object Model)進行動態顯示及交互;

使用 XML 和 XSLT 進行數據交換及相關操作;

使用 XMLHttpRequest 進行異步數據查詢、檢索;

使用 JavaScript 將所有的東西綁定在一起。

為什么要用ajax:

Ajax應用程序的優勢在於:

1. 通過異步模式,提升了用戶體驗

2. 優化了瀏覽器和服務器之間的傳輸,減少不必要的數據往返,減少了帶寬占用

3. Ajax引擎在客戶端運行,承擔了一部分本來由服務器承擔的工作,從而減少了大用戶量下的服務器負載。

2、Ajax的最大的特點是什么?

Ajax可以實現動態不刷新(局部刷新)

就是能在不更新整個頁面的前提下維護數據。這使得Web應用程序更為迅捷地回應用戶動作,並避免了在網絡上發送那些沒有改變過的信息。

3、請介紹一下XMLHTTPREQUEST對象? 

Ajax的核心是JavaScript對象XmlHttpRequest。該對象在Internet Explorer 5中首次引入,它是一種支持異步請求的技術。簡而言之,XmlHttpRequest使您可以使用JavaScript向服務器提出請求並處理響應,而不阻塞用戶。通過XMLHttpRequest對象,Web開發人員可以在頁面加載以后進行頁面的局部更新。 

4、Ajax技術體系的組成部分有哪些?

HTMLcss,dom,xml,xmlHttpRequest,javascript

5、AJAX應用和傳統Web應用有什么不同? 

在傳統的Javascript編程中,如果想得到服務器端數據庫或文件上的信息,或者發送客戶端信息到服務器,需要建立一個HTML form然后GET或者POST數據到服務器端。用戶需要點擊”Submit”按鈕來發送或者接受數據信息,然后等待服務器響應請求,頁面重新加載。

因為服務器每次都會返回一個新的頁面, 所以傳統的web應用有可能很慢而且用戶交互不友好。

使用AJAX技術, 就可以使Javascript通過XMLHttpRequest對象直接與服務器進行交互。

通過HTTP Request, 一個web頁面可以發送一個請求到web服務器並且接受web服務器返回的信息(不用重新加載頁面),展示給用戶的還是通一個頁面,用戶感覺頁面刷新,也看不到到Javascript后台進行的發送請求和接受響應。 

6、AJAX請求總共有多少種CALLBACK?

1 Ajax請求總共有八種Callback 
2 onSuccess 
3 onFailure 
4 onUninitialized 
5 onLoading 
6 onLoaded 
7 onInteractive 
8 onComplete 
9 onException

7、Ajaxjavascript的區別?

  javascript是一種在瀏覽器端執行的腳本語言,Ajax是一種創建交互式網頁應用的開發技術 ,它是利用了一系列相關的技術其中就包括javascript。Javascript是由網景公司開發的一種腳本語言,它和sun公司的java語言是沒有任何關系的,它們相似的名稱只是一種行銷策略。在一般的web開發中,javascript是在瀏覽器端執行的,我們可以用javascript控制瀏覽器的行為和內容。在 Ajax應用中信息是如何在瀏覽器和服務器之間傳遞的 通過XML數據或者字符串。

8、在瀏覽器端如何得到服務器端響應的XML數據?

 XMLHttpRequest對象的responseXML屬性

9、XMLHttpRequest對象在IEFirefox中創建方式有沒有不同?

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

10、 介紹一下XMLHttpRequest對象的常用方法和屬性(回答的越多越好)

1 open(“method”,”URL”) 建立對服務器的調用,第一個參數是HTTP請求    方式可以為GET,POST或任何服務器所支持的您想調用的方式。 
2  第二個參數是請求頁面的URL。 
3 send()方法,發送具體請求
4 abort()方法,停止當前請求
5 readyState屬性   請求的狀態 有5個可取值 0=未初始化 ,1=正在加載 2=以加載,3=交互中,4=完成
7 responseText 屬性  服務器的響應,表示為一個串
8 reponseXML 屬性 服務器的響應,表示為XML
9 status    服務器的HTTP狀態碼,200對應ok  400對應not found

11、Ajax的優點和缺點

使用Ajax的最大優點,就是能在不更新整個頁面的前提下維護數據。這使得Web應用程序更為迅捷地回應用戶動作,並避免了在網絡上發送那些沒有改變過的信息。對應用Ajax最主要的缺點就是,它可能破壞瀏覽器后退按鈕的正常行為因為Ajax中采用了xml技術,所以在Ajax中也可能問到XML的問題。

12、什么是XML?

XML是擴展標記語言,能夠用一系列簡單的標記描述數據。

13、xml的解析方式 

常用的用dom解析和sax解析。dom解析是一次性讀取xml文件並將其構造為DOM對象供程序使用,優點是操作方便,但是比較耗內存。Sax是按事件驅動的方式解析的,占用內存少,但是編程復雜。

14、你采用的是什么框架(架包)?

       這題是必問的,一般也是最開始就會問到。

       在java中比較流行的有 dojo, Prototype , JQuery, Dwr, extjs  等等

15、如果熟悉某種ajax框架,他可能會問到怎樣在程序中使用這種框架

DWR框架介紹

n DWR(Direct Web Remoting)是一個WEB遠程調用框架.利用這個框架可以讓AJAX開發變得很簡單.利用DWR可以在客戶端利用JavaScript直接調用服務端的Java方法並返回值給JavaScript就好像直接本地客戶端調用一樣(DWR根據Java類來動態生成JavaScrip代碼).

n DWR的實現原理是通過反射,將java翻譯成javascript,然后利用回調機制,從而實現了javascript調用Java代碼

16、介紹一下Prototype$()函數,$F()函數,$A()函數都是什么作用?

$() 方法是在DOM中使用過於頻繁的 document.getElementById() 方法的一個便利的簡寫,就像這個DOM方法一樣,這個方法返回參數傳入的id的那個元素。

$F()函數是另一個大收歡迎的快捷鍵,它能用於返回任何表單輸入控件的值,比如text box,drop-down list。這個方法也能用元素id或元素本身做為參數。

$A()函數能把它接收到的單個的參數轉換成一個Array對象。

17、介紹一下XMLHttpRequest對象

通過XMLHttpRequest對象,Web開發人員可以在頁面加載以后進行頁面的局部更新。

18AJAX應用和傳統Web應用有什么不同?

在傳統的Javascript編程中,如果想得到服務器端數據庫或文件上的信息,或者發送客戶端信息到服務器,需要建立一個HTML form然后GET或者POST數據到服務器端。用戶需要點擊”Submit”按鈕來發送或者接受數據信息,然后等待服務器響應請求,頁面重新加載。

因為服務器每次都會返回一個新的頁面, 所以傳統的web應用有可能很慢而且用戶交互不友好。

使用AJAX技術, 就可以使Javascript通過XMLHttpRequest對象直接與服務器進行交互。

通過HTTP Request, 一個web頁面可以發送一個請求到web服務器並且接受web服務器返回的信息(不用重新加載頁面),展示給用戶的還是通一個頁面,用戶感覺頁面刷新,也看不到到Javascript后台進行的發送請求和接受響應。

19AJAX的全稱是什么? 介紹一下AJAX

AJAX的全稱是Asynchronous JavaScript And XML.

AJAX2005年由Google發起並流行起來的編程方法, AJAX不是一個新的編程語言,但是它是一個使用已有標准的新的編程技術。

使用AJAX可以創建更好,更快,更用戶界面友好的Web應用。

AJAX技術基於JavascriptHTTP Request.

20、介紹一下XMLHttpRequest對象的常用方法和屬性?

open(“method”,”URL”) 建立對服務器的調用,第一個參數是HTTP請求    方式可以為GETPOST或任何服務器所支持的您想調用的方式。

第二個參數是請求頁面的URL

send()方法,發送具體請求

abort()方法,停止當前請求

readyState屬性   請求的狀態 有5個可取值 0=未初始化 ,1=正在加載

2=以加載,3=交互中,4=完成

responseText 屬性 服務器的響應,表示為一個串

reponseXML 屬性 服務器的響應,表示為XML

status    服務器的HTTP狀態碼,200對應ok 400對應not found

21、Ajax主要包含了哪些技術?

J主要是avaScript + XML

22AJAX都有哪些有點和缺點?

ajax的優點

1、最大的一點是頁面無刷新,用戶的體驗非常好。

2、使用異步方式與服務器通信,具有更加迅速的響應能力。

3、可以把以前一些服務器負擔的工作轉嫁到客戶端,利用客戶端閑置的能力來處理,減輕服務器和帶寬的負擔,節約空間和寬帶租用成本。並且減輕服務器的負擔,ajax的原則是按需取數據,可以最大程度的減少冗余請求,和響應對服務器造成的負擔。

4、基於標准化的並被廣泛支持的技術,不需要下載插件或者小程序。

ajax的缺點

1ajax不支持瀏覽器back按鈕。

2、安全問題 AJAX暴露了與服務器交互的細節。

3、對搜索引擎的支持比較弱。

4、破壞了程序的異常機制。

5、不容易調試。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM