ajax的19道經(jīng)典面試題1、什么是ajax,為什么要使用ajax(請談一下你對ajax的認(rèn)識)
什么是ajax:
ajax是“asynchronous javascript and xml”的縮寫。他是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。
ajax包含下列技術(shù):
基于web標(biāo)準(zhǔn)(standards-basedpresentation)xhtml css的表示;
使用 dom(document objectmodel)進(jìn)行動態(tài)顯示及交互;
使用 xml 和 xslt 進(jìn)行數(shù)據(jù)交換及相關(guān)操作;
使用 xmlhttprequest 進(jìn)行異步數(shù)據(jù)查詢、檢索;
使用 javascript 將所有的東西綁定在一起。
2、為什么要用ajax:
ajax應(yīng)用程序的優(yōu)勢在于:
1. 通過異步模式,提升了用戶體驗(yàn)
2. 優(yōu)化了瀏覽器和服務(wù)器之間的傳輸,減少不必要的數(shù)據(jù)往返,減少了帶寬占用
3. ajax引擎在客戶端運(yùn)行,承擔(dān)了一部分本來由服務(wù)器承擔(dān)的工作,從而減少了大用戶量下的服務(wù)器負(fù)載。
2、ajax最大的特點(diǎn)是什么。
ajax可以實(shí)現(xiàn)動態(tài)不刷新(局部刷新)
就是能在不更新整個頁面的前提下維護(hù)數(shù)據(jù)。這使得web應(yīng)用程序更為迅捷地回應(yīng)用戶動作,并避免了在網(wǎng)絡(luò)上發(fā)送那些沒有改變過的信息。
3、請介紹一下xmlhttprequest對象。
ajax的核心是javascript對象xmlhttprequest。該對象在internet explorer 5中首次引入,它是一種支持異步請求的技術(shù)。簡而言之,xmlhttprequest使您可以使用javascript向服務(wù)器提出請求并處理響應(yīng),而不阻塞用戶。通過xmlhttprequest對象,web開發(fā)人員可以在頁面加載以后進(jìn)行頁面的局部更新。
4、ajax技術(shù)體系的組成部分有哪些。
html,css,dom,xml,xmlhttprequest,javascript
5、ajax應(yīng)用和傳統(tǒng)web應(yīng)用有什么不同。
在傳統(tǒng)的javascript編程中,如果想得到服務(wù)器端數(shù)據(jù)庫或文件上的信息,或者發(fā)送客戶端信息到服務(wù)器,需要建立一個html form然后get或者post數(shù)據(jù)到服務(wù)器端。用戶需要點(diǎn)擊”submit”按鈕來發(fā)送或者接受數(shù)據(jù)信息,然后等待服務(wù)器響應(yīng)請求,頁面重新加載。
因?yàn)榉?wù)器每次都會返回一個新的頁面, 所以傳統(tǒng)的web應(yīng)用有可能很慢而且用戶交互不友好。
使用ajax技術(shù), 就可以使javascript通過xmlhttprequest對象直接與服務(wù)器進(jìn)行交互。
通過http request, 一個web頁面可以發(fā)送一個請求到web服務(wù)器并且接受web服務(wù)器返回的信息(不用重新加載頁面),展示給用戶的還是通一個頁面,用戶感覺頁面刷新,也看不到到j(luò)avascript后臺進(jìn)行的發(fā)送請求和接受響應(yīng)。
6、ajax請求總共有多少種callback。
ajax請求總共有八種callback
onsuccess
onfailure
onuninitialized
onloading
onloaded
oninteractive
oncomplete
onexception
7.ajax和javascript的區(qū)別。
javascript是一種在瀏覽器端執(zhí)行的腳本語言,ajax是一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的開發(fā)技術(shù) ,它是利用了一系列相關(guān)的技術(shù)其中就包括javascript。
javascript是由網(wǎng)景公司開發(fā)的一種腳本語言,它和sun公司的java語言是沒有任何關(guān)系的,它們相似的名稱只是一種行銷策略。
在一般的web開發(fā)中,javascript是在瀏覽器端執(zhí)行的,我們可以用javascript控制瀏覽器的行為和內(nèi)容。
在 ajax應(yīng)用中信息是如何在瀏覽器和服務(wù)器之間傳遞的
通過xml數(shù)據(jù)或者字符串
8、在瀏覽器端如何得到服務(wù)器端響應(yīng)的xml數(shù)據(jù)。
xmlhttprequest對象的responsexml屬性
9、 xmlhttprequest對象在ie和firefox中創(chuàng)建方式有沒有不同。
有,ie中通過new activexobject()得到,firefox中通過newxmlhttprequest()得到
10、介紹一下xmlhttprequest對象的常用方法和屬性。
open(“method”,”url”) 建立對服務(wù)器的調(diào)用,第一個參數(shù)是http請求 方式可以為get,post或任何服務(wù)器所支持的您想調(diào)用的方式。
第二個參數(shù)是請求頁面的url。
send()方法,發(fā)送具體請求
abort()方法,停止當(dāng)前請求
readystate屬性 請求的狀態(tài) 有5個可取值0=未初始化 ,1=正在加載
2=以加載,3=交互中,4=完成
responsetext 屬性 服務(wù)器的響應(yīng),表示為一個串
reponsexml 屬性 服務(wù)器的響應(yīng),表示為xml
status 服務(wù)器的http狀態(tài)碼,200對應(yīng)ok 400對應(yīng)not found
11、什么是xml
xml是擴(kuò)展標(biāo)記語言,能夠用一系列簡單的標(biāo)記描述數(shù)據(jù)
12、xml的解析方式
常用的用dom解析和sax解析。dom解析是一次性讀取xml文件并將其構(gòu)造為dom對象供程序使用,優(yōu)點(diǎn)是操作方便,但是比較耗內(nèi)存。sax是按事件驅(qū)動的方式解析的,占用內(nèi)存少,但是編程復(fù)雜
13、你采用的是什么框架(架包)
這題是必問的,一般也是最開始就會問到。
在java中比較流行的有 dojo, prototype , jquery, dwr, extjs 等等
14、如果熟悉某種ajax框架,他可能會問到怎樣在程序中使用這種框架
dwr框架介紹
dwr(directweb remoting)是一個web遠(yuǎn)程調(diào)用框架.利用這個框架可以讓ajax開發(fā)變得很簡單.利用dwr可以在客戶端利用javascript直接調(diào)用服務(wù)端的java方法并返回值給javascript就好像直接本地客戶端調(diào)用一樣(dwr根據(jù)java類來動態(tài)生成javascrip代碼).
dwr的實(shí)現(xiàn)原理是通過反射,將java翻譯成javascript,然后利用回調(diào)機(jī)制,從而實(shí)現(xiàn)了javascript調(diào)用java代碼
15、介紹一下prototype的()函數(shù),()函數(shù),f()函數(shù),a()函數(shù)都是什么作用a()函數(shù)都是什么作用() 方法是在dom中使用過于頻繁的document.getelementbyid() 方法的一個便利的簡寫,就像這個dom方法一樣,這個方法返回參數(shù)傳入的id的那個元素。
$f()函數(shù)是另一個大收歡迎的“快捷鍵”,它能用于返回任何表單輸入控件的值,比如textbox,drop-down list。這個方法也能用元素id或元素本身做為參數(shù)。
$a()函數(shù)能把它接收到的單個的參數(shù)轉(zhuǎn)換成一個array對象。
16、介紹一下xmlhttprequest對象
通過xmlhttprequest對象,web開發(fā)人員可以在頁面加載以后進(jìn)行頁面的局部更新。
ajax開始流行始于google在2005年使用的”google suggest”。
“google suggest”就是使用xmlhttprequest對象來創(chuàng)建動態(tài)的web接口:
當(dāng)用戶開始輸入google的搜索框,javascript發(fā)送用戶輸入的字符到服務(wù)器,然后服務(wù)器返回一個建議列表。
xmlhttprequest對象在ie5.0 , safari 1.2, mozilla1.0/firefox, opera 8 和netscapt7 開始被支持。
17、ajax的全稱是什么? 介紹一下ajax?
ajax的全稱是asynchronous javascript and xml.
ajax是2005年由google發(fā)起并流行起來的編程方法, ajax不是一個新的編程語言,但是它是一個使用已有標(biāo)準(zhǔn)的新的編程技術(shù)。
使用ajax可以創(chuàng)建更好,更快,更用戶界面友好的web應(yīng)用。
ajax技術(shù)基于javascript和http request.
18、ajax主要包含了哪些技術(shù)?
ajax(asynchronous javascript xml)的定義
基于web標(biāo)準(zhǔn)(standards-based presentation)xhtml css的表示;
使用 dom(document object model)進(jìn)行動態(tài)顯示及交互;
使用 xml 和 xslt 進(jìn)行數(shù)據(jù)交換及相關(guān)操作;
使用xmlhttprequest 進(jìn)行異步數(shù)據(jù)查詢、檢索;
使用 javascript 將所有的東西綁定在一起。英文參見ajax的提出者jesse james garrett的原文,原文題目(ajax: a new approach to web applications)。
類似于dhtml或lamp,ajax不是指一種單一的技術(shù),而是有機(jī)