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、為什么利用多個域名來存儲網站資源會更有效?

  確保用戶在不同地區能用最快的速度打開網站,其中某個域名崩潰用戶也能通過其他域名訪問網站,並且不同的資源放到不同的服務器上有利於減輕單台服務器的壓力。

 


免責聲明!

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



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