ajax是什么?
1、ajax是什么?如何創建一個ajax?ajax并不算是一種新的技術,全稱是asynchronous javasript and xml,可以說是已有技術的組合,主要用來
實現客戶端服務器的異步通信效果,實現頁面的局部刷新,早期的瀏覽器并不能原生支持ajax,可以使用
隱藏幀(iframe)方式變相實現異步效果,后來的瀏覽器提供了對ajax的原生支持。使用ajax原生方式發送請求主要通過XMLHttpRequest(標準瀏覽器)、ActiveXObject(IE瀏覽器)對象實現
異步通信效果。//ajax編寫步驟
// 1、創建XMLHttpRequest對象var xhr = new XMLHttpRequest();
// 2、設置請求參數xhr.open(請求方式,請求地址,異步或同步);
// 3、設置回調函數xhr.onreadystatechange = function(){if(xhr.reasyState===4){if(xhr.status === 200) {//5、接受響應console.log(xhr.responseText);}}}
// 4、發送請求xhr.send();2、同步和異步的區別?同步:瀏覽器向服務器請求數據,服務器比較忙,瀏覽器一直等著(頁面白屏),直到服務器返回數據,
瀏覽器才能顯示頁面。異步:瀏覽器向服務器請求數據,服務器比較忙,瀏覽器可以自如的干原來的事情(顯示頁面),服務器返回
數據的時候通知瀏覽器一聲,瀏覽器把返回的數據再渲染到頁面,局部更新。3、如何解決跨域問題?
理解跨域的概念:協議、域名、端口都相同才同域,否則都是跨域。出于安全考慮,服務器不允許ajax跨域獲取數據,但是可以跨域獲取文件內容,所以基于這一點,可以動態
創建script標簽,使用標簽的src屬性訪問js文件的形式獲取js腳本,并且這個js腳本中的內容是函數
調用,該函數調用的參數是服務器返回的數據,為了獲取這里的參數數據,需要事先在頁面中定義回調函數,
在回調函數中處理服務器返回的數據,這就是解決跨域問題的主流解決方案。4、請解釋一下javaScript的同源策略
同源策略是客戶端腳本的重要安全度量標準,所謂同源指的是:協議,域名,端口相同,同源策略是一種安全
協議,指一段腳本只能讀取來自同一來源的窗口和文檔的屬性。5、GET和POST的區別,何時使用POST?
GET:一般用于信息獲取,使用URL傳遞參數,對所發送信息的數量也有限制,一般在2000個字符,有的瀏覽器
是8000個字符。POST:一般用于修改服務器上的資源,對所發送的信息沒有限制。以下情況中,請使用POST請求:
①、無法使用緩存文件(更新服務器上的文件或數據庫)
②、向服務器發送大量數據(POST沒有數據量限制)
③、發送包含未知字符的用戶輸入時,POST比GET更穩定也更可靠。6、ajax的最大特點是什么?ajax可以實現異步通信效果,實現頁面局部刷新,帶來更好的用戶體驗;按需要獲取數據,節約帶寬資源。7、ajax的缺點?
①、ajax不支持瀏覽器back按鈕。
②、安全問題ajax暴露了與服務器交互的細節。
③、對搜索引擎的支持比較弱。
④、破壞了程序的異常機制。8、解釋jsonp的原理,以及為什么不是真正的ajax?
jsonp并不是一種數據格式,而是json是一種數據格式,jsonp是用來解決跨域獲取數據的一種解決方案,
具體是通過動態創建script標簽,然后通過標簽src屬性獲取js文件中的js腳本,該腳本的內容是一個函數
調用,參數就是服務器返回的數據,為了處理這些返回的數據,需要事先在頁面定義好回調函數,本質上使用
的并不是ajax技術。9、HTTP狀態碼都有哪些?
200 OK 客戶端請求成功
301 資源(網頁等)被永久轉移到其他URL
400 Bad Request 客戶端請求有語法錯誤,不能被服務器所理解
403 Forbidden 服務器收到請求,但是拒絕提供服務
404 Not Found 請求資源部存在,輸入了錯誤的URL
500 Internal Server Error 服務器發生不可預期的錯誤
503 Server Unavailable 服務器當前不能處理客戶端的請求,一段時間后可能恢復正常。10、為什么利用多個域名來存儲網站資源會更有效?
確保用戶在不同地區能用最快的速度打開網站,其中某個域名崩潰用戶也能通過其他域名訪問網站,并且不同
的資源放到不同的服務器上有利于減輕單臺服務器的壓力。
什么是AJAX,為什么要使用Ajax
什么是ajax:AJAX是“Asynchronous JavaScript and XML”的縮寫。他是指一種創建交互式網頁應用的網頁開發技術。Ajax包含下列技術: 基于web標準(standards-basedpresentation)XHTML+CSS的表示; 使用 DOM(Document ObjectModel)進行動態顯示及交互; 使用 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技術體系的組成部分有哪些。 HTML,css,dom,xml,xmlHttpRequest,javascript5、AJAX應用和傳統Web應用有什么不同。 1.在傳統的Javascript編程中,如果想得到服務器端數據庫或文件上的信息,或者發送客戶端信息到服務器, 需要建立一個HTML form然后GET或者POST數據到服務器端。用戶需要點擊”Submit”按鈕來發送或者接受 數據信息,然后等待服務器響應請求,頁面重新加載。 2.因為服務器每次都會返回一個新的頁面, 所以傳統的web應用有可能很慢而且用戶交互不友好。 3.使用AJAX技術, 就可以使Javascript通過XMLHttpRequest對象直接與服務器進行交互。 4.通過HTTP Request, 一個web頁面可以發送一個請求到web服務器并且接受web服務器返回的信息 (不用重新加載頁面),展示給用戶的還是同一個頁面,用戶感覺頁面刷新,也看不到到Javascript后臺 進行的發送請求和接受響應。6、AJAX請求總共有多少種CALLBACK。Ajax請求總共有八種Callback onSuccess onFailure onUninitialized onLoading onLoaded onInteractive onComplete onException7.Ajax和javascript的區別。 1.javascript是一種在瀏覽器端執行的腳本語言,Ajax是一種創建交互式網頁應用的開發技術 ,它是 利用了一系列相關的技術其中就包括javascript。 2.Javascript是由網景公司開發的一種腳本語言,它和sun公司的java語言是沒有任何關系的,它們相似的 名稱只是一種行銷策略。 3.在一般的web開發中,javascript是在瀏覽器端執行的,我們可以用javascript控制瀏覽器的行為和內容。 4.在 Ajax應用中信息是如何在瀏覽器和服務器之間傳遞的通過XML數據或者字符串8、在瀏覽器端如何得到服務器端響應的XML數據。 XMLHttpRequest對象的responseXMl屬性9、 XMLHttpRequest對象在IE和Firefox中創建方式有沒有不同。有,IE中通過new ActiveXObject()得到,Firefox中通過new XMLHttpRequest()得到10、介紹一下XMLHttpRequest對象的常用方法和屬性。 1.open(“method”,”URL”) 建立對服務器的調用,第一個參數是HTTP請求方式可以為GET,POST或任何 服務器所支持的您想調用的方式。 第二個參數是請求頁面的URL。 2.send()方法,發送具體請求 3.abort()方法,停止當前請求 4.readyState屬性 請求的狀態 有5個可取值0=未初始化 ,1=正在加載 2=以加載,3=交互中,4=完成 5.responseText 屬性 服務器的響應,表示為一個串 6. reponseXML 屬性 服務器的響應,表示為XML 7.status 服務器的HTTP狀態碼,200對應ok 400對應not found12、什么是XMLXML是擴展標記語言,能夠用一系列簡單的標記描述數據13、XML的解析方式 常用的用dom解析和sax解析。dom解析是一次性讀取xml文件并將其構造為DOM對象供程序使用,優點是操作 方便,但是比較耗內存。Sax是按事件驅動的方式解析的,占用內存少,但是編程復雜14、介紹一下XMLHttpRequest對象 1.通過XMLHttpRequest對象,Web開發人員可以在頁面加載以后進行頁面的局部更新。 2.AJAX開始流行始于Google在2005年使用的”Google Suggest”。 3.“Google Suggest”就是使用XMLHttpRequest對象來創建動態的Web接口: 4.XMLHttpRequest對象在IE5.0+, Safari 1.2, Mozilla1.0/Firefox, Opera 8+ 和NetScapt7 開始 被支持。15、AJAX的全稱是什么? 介紹一下AJAX? 1.AJAX的全稱是Asynchronous JavaScript And XML. 2.AJAX是2005年由Google發起并流行起來的編程方法, AJAX不是一個新的編程語言,但是它是一個使用 已有標準的新的編程技術。 3.使用AJAX可以創建更好,更快,更用戶界面友好的Web應用。 4.AJAX技術基于Javascript和HTTP Request.16、Ajax主要包含了哪些技術? 1.Ajax(Asynchronous JavaScript + XML)的定義 2.基于web標準(standards-based presentation)XHTML+CSS的表示; 3.使用 DOM(Document Object Model)進行動態顯示及交互; 4.使用 XML 和 XSLT 進行數據交換及相關操作; 5.使用XMLHttpRequest 進行異步數據查詢、檢索; 6.使用 JavaScript 將所有的東西綁定在一起。英文參見Ajax的提出者Jesse James Garrett的原文, 原文題目(Ajax: A New Approach to Web Applications)。 7.AJAX的應用使用支持以上技術的web瀏覽器作為運行平臺。瀏覽器目前包括:Mozilla、Firefox、 Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式對象,也不支持XSLT。20、AJAX都有哪些優點和缺點?1、最大的一點是頁面無刷新,用戶的體驗非常好。 2、使用異步方式與服務器通信,具有更加迅速的響應能力。 3、可以把以前一些服務器負擔的工作轉嫁到客戶端,利用客戶端閑置的能力來處理,減輕服務器和帶寬的 負擔,節約空間和寬帶租用成本。并且減輕服務器的負擔,ajax的原則是“按需取數據”,可以最大程度的 減少冗余請求,和響應對服務器造成的負擔。 4、基于標準化的并被廣泛支持的技術,不需要下載插件或者小程序。ajax的缺點 1、ajax不支持瀏覽器back按鈕 2、安全問題 AJAX暴露了與服務器交互的細節。 3、對搜索引擎的支持比較弱。 4、破壞了程序的異常機制。 5、不容易調試。ajax常見的面試問題
1:什么是ajax?ajax作用是什么?異步的javascript和xml AJAX 是一種用于創建快速動態網頁的技術。 ajax用來與后臺交互2:原生js ajax請求有幾個步驟?分別是什么//創建 XMLHttpRequest 對象 var ajax = new XMLHttpRequest(); //規定請求的類型、URL 以及是否異步處理請求。 ajax.open('GET',url,true); //發送信息至服務器時內容編碼類型 ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //發送請求 ajax.send(null); //接受服務器響應數據 ajax.onreadystatechange = function () {if (obj.readyState == 4 && (obj.status == 200 || obj.status == 304)) { } };3:json字符串轉換集json對象、json對象轉換json字符串//字符串轉對象 JSON.parse(json) eval('(' + jsonstr + ')') // 對象轉字符串 JSON.stringify(json)4:ajax幾種請求方式?他們的優缺點?常用的post,get,delete。不常用copy、head、link等等。###代碼上的區別1:get通過url傳遞參數2:post設置請求頭 規定請求數據類型###使用上的區別1:post比get安全 (因為post參數在請求體中。get參數在url上面)2:get傳輸速度比post快 根據傳參決定的。 (post通過請求體傳參,后臺通過數據流接收。速度稍微慢一些。而get通過url傳參可以直接獲取)3:post傳輸文件大理論沒有限制 get傳輸文件小大概7-8k ie4k左右 4:get獲取數據 post上傳數據 (上傳的數據比較多 而且上傳數據都是重要數據。所以不論在安全性還是數據量級 post是最好的選擇)5:什么情況造成跨域?同源策略限制 不同源會造成跨域。以下任意一種情況不同,都是不同源。http://www.baidu.com/8080/index.htmlhttp:// 協議不同 www 子域名不同 baidu.com 主域名不同 8080 端口號不同 www.baidu.com ip地址和網址不同6:跨域解決方案有哪些?1:jsonp 只能解決get跨域(問的最多)原理:動態創建一個script標簽。利用script標簽的src屬性不受同源策略限制。因為所有的src屬性和 href屬性都不受同源策略限制??梢哉埱蟮谌椒掌鲾祿热?。步驟: 1.去創建一個script標簽 2.script的src屬性設置接口地址 3.接口參數,必須要帶一個自定義函數名 要不然后臺無法返回數據。 4.通過定義函數名去接收后臺返回數據//去創建一個script標簽 var script = document.createElement("script"); //script的src屬性設置接口地址 并帶一個callback回調函數名稱 script.src = "http://127.0.0.1:8888/index.php?callback=jsonpCallback"; //插入到頁面 document.head.appendChild(script); //通過定義函數名去接收后臺返回數據 function jsonpCallback(data){//注意 jsonp返回的數據是json對象可以直接使用//ajax 取得數據是json字符串需要轉換成json對象才可以使用。 }2:CORS:跨域資源共享原理:服務器設置Access-Control-Allow-OriginHTTP響應頭之后,瀏覽器將會允許跨域請求限制:瀏覽器需要支持HTML5,可以支持POST,PUT等方法兼容ie9以上需要后臺設置 Access-Control-Allow-Origin: * //允許所有域名訪問,或者 Access-Control-Allow-Origin: http://a.com //只允許所有域名訪問http常見狀態碼有哪些?一: 2開頭狀態碼 2xx (成功)表示成功處理了請求的狀態代碼 200 (成功) 服務器已成功處理了請求。 二: 3開頭狀態碼 3xx (重定向) 表示要完成請求,需要進一步操作。 通常,這些狀態代碼用來重定向。 304 (未修改) 自從上次請求后,請求的網頁未修改過。 服務器返回此響應時,不會返回網頁內容。三: 4開頭狀態碼 4xx(請求錯誤) 這些狀態代碼表示請求可能出錯,妨礙了服務器的處理1:400 (錯誤請求) 服務器不理解請求的語法。 2:403 (禁止) 服務器拒絕請求。 3:404 (未找到) 服務器找不到請求的網頁。四: 5開頭狀態碼 5xx(服務器錯誤)這些狀態代碼表示服務器在嘗試處理請求時發生內部錯誤。 這些錯誤可能是服務器本身的 錯誤,而不是請求出錯500 (服務器內部錯誤) 服務器遇到錯誤,無法完成請求。 501 (尚未實施) 服務器不具備完成請求的功能。 例如,服務器無法識別請求方法時可能會返回此代碼。 502 (錯誤網關) 服務器作為網關或代理,從上游服務器收到無效響應。 503 (服務不可用) 服務器目前無法使用(由于超載或停機維護)。 通常,這只是暫時狀態。 504 (網關超時) 服務器作為網關或代理,但是沒有及時從上游服務器收到請求。 505 (HTTP 版本不受支持) 服務器不支持請求中所用的 HTTP 協議版本。AJAX = Asynchronous JavaScript and XML(異步 JavaScript 和 XML)。Ajax 的原理簡單來說通過 XmlHttpRequest 對象來向服務器發異步請求,從服務器獲得數據,然后 用 Javascript 來操作 DOM 而更新頁面。這其中最關鍵的一步就是從服務器獲得請求數據。XmlHttpRequest 是 ajax 的核心機制,它是在 IE5 中首先引入的,是一種支持異步請求的技術。 簡單的說,也就是 Javascript 可以及時向服務器提出請求和處理響應,而不阻塞用戶。達到無刷新的效果。?
總結
- 上一篇: ThreadLocal类与Synchon
- 下一篇: jQuery问题