一. 首先這是一個老生暢談的問題,曾經我一天面試下來,至少有三家會問到這個問題,說說你對ajax的認知,說白了就是什么是ajax,ajax有啥用?
什么是ajax:
AJAX是
Asynchronous JavaScript and XML
的縮寫;它是一種創建
交互式網頁應用
的網頁開發技術;AJAX是2005年由Google發起并流行起來的編程方法;
AJAX不是一個新的編程語言,但是它是一個使用已有標準的新的編程技術;
使用AJAX可以創建更好,更快,更用戶界面友好的Web應用;
AJAX技術基于Javascript和HTTP Request;
Ajax需要依賴哪些技術作支撐:
基于web標準(standards-based presentation)XHTML+CSS的表示;
使用 DOM(Document Object Model)進行動態顯示及交互;
使用 XML 和 XSLT 進行數據交換及相關操作;
使用 XMLHttpRequest 進行異步數據查詢、檢索;
使用 JavaScript 將所有的東西綁定在一起;
為什么要用ajax,它的優勢所在:
- 通過
異步模式
,提升了用戶體驗
; - 優化了
瀏覽器
和服務器
之間的傳輸
,減少不必要的數據往返,減少了帶寬占用
,降低了資源浪費; - Ajax引擎在
客戶端
運行,承擔了一部分本來由服務器承擔的工作,從而減少了大用戶量下的服務器負載
;
二. 那么Ajax的最吸引人的特點是什么?
Ajax可以實現
動態不刷新
,也就是局部刷新
的功能,這在手機端可是很有用的哦;再說直白點就是
能在不更新整個頁面的前提下維護數據
, 這樣做就會讓我們的Web應用程序更為迅捷地回應用戶動作,并避免了在網絡上發送那些沒有改變過的、重復性的信息,用戶也無需等待太長的時間,大大的提高了用戶的體驗;
三. Ajax第一步創建一個XMLHTTPREQUEST對象,你對它是怎么看的?以及它存在的瀏覽器兼容性問題?怎么解決?
Ajax的核心
是JavaScript對象XmlHttpRequest
;
該對象在Internet Explorer 5
中首次引入,它是一種支持異步請求
的技術;
簡而言之,XmlHttpRequest使您可以使用JavaScript向服務器提出請求并處理響應,而不阻塞用戶;
通過XMLHttpRequest對象,Web開發人員可以在頁面加載以后進行頁面的局部更新
;
兼容性問題:
var xhr;
if (window.XMLHttpRequest)
{
// IE7+, Firefox, Chrome, Opera, Safari 瀏覽器執行代碼
xhr = new XMLHttpRequest();
}
else
{
// IE6, IE5 瀏覽器執行代碼
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
或者使用try......catch......
寫法;
四. Ajax技術體系的組成部分有哪些?
html,css,dom,xml,xmlHttpRequest,javascript;
五. AJAX應用和傳統Web應用的不同之處?
在傳統的Javascript編程中,如果:
想要訪問到服務器端
數據庫
或文件上的信息;或者發送客戶端信息到服務器;
需要建立一個HTML form
,然后GET
或者POST
數據到服務器端;
用戶需要點擊Submit
按鈕來發送或者接受數據信息,然后等待服務器響應請求,頁面重新加載;
因為服務器每次都會返回一個新的頁面, 所以傳統的web應用有可能很慢而且用戶交互不友好
;
使用AJAX技術, 就可以使Javascript通過XMLHttpRequest對象直接與服務器進行交互
;
通過HTTP Request, 一個web頁面可以發送一個請求到web服務器并且接受web服務器返回的信息(不用重新加載頁面),展示給用戶的還是同一個頁面,用戶感覺頁面刷新,也看不到到Javascript后臺進行的發送請求和接受響應,效果體驗比較好;
六. AJAX請求總共有多少種回調函數---CALLBACK?
Ajax請求總共有八種Callback:
- onSuccess
- onFailure
- onLoading
- onLoaded
- onUninitialized
- onInteractive
- onComplete
- onException
其實這個我也不咋用,最常見的也就前四種;
七.Ajax和javascript的區別?
javascript是一種在瀏覽器端執行的 客戶端
腳本語言
,Ajax是一種創建交互式網頁應用
的開發技術 ,它是利用了一系列相關的技術其中就包括javascript;
Javascript是由網景
公司開發的一種腳本語言,它和sun
公司的Java
語言是沒有任何關系的,它們相似的名稱只是一種行銷策略;
在一般的web開發中,javascript是在瀏覽器端執行的,我們可以用javascript控制瀏覽器的行為和內容;