AJAX面試問題

2021-10-13 18:23 更新

AJAX面試問題


 下面列出了常見的AJAX面試問題和答案。

1、什么是AJAX?

 AJAX代表異步JavaScript和XML。它是一組用于異步顯示數(shù)據(jù)的相關技術。換句話說,它在不重新加載網(wǎng)頁的情況下發(fā)送和檢索數(shù)據(jù)。

2、AJAX有哪些優(yōu)點?

  • 快速回復
  • 帶寬利用率
  • 在從服務器檢索數(shù)據(jù)之前,不會阻止用戶。
  • 它允許我們只將重要數(shù)據(jù)發(fā)送到服務器。
  • 它使應用程序具有交互性和更快速。

3、AJAX有哪些缺點?

  • 取決于JavaScript
  • 安全問題
  • 調(diào)試很困難

4、原生js ajax請求有幾個步驟?分別是什么

//創(chuàng)建 XMLHttpRequest 對象
var ajax = new XMLHttpRequest();
//規(guī)定請求的類型、URL 以及是否異步處理請求。
ajax.open('GET',url,true);
//發(fā)送信息至服務器時內(nèi)容編碼類型
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
//發(fā)送請求
ajax.send(null);  
//接受服務器響應數(shù)據(jù)
ajax.onreadystatechange = function () {
    if (obj.readyState == 4 && (obj.status == 200 || obj.status == 304)) { 
    }
};

5、ajax幾種請求方式?他們的優(yōu)缺點?

常用的post,get,delete。不常用copy、head、link等等。

區(qū)別:

(1)post比get安全 (因為post參數(shù)在請求體中。get參數(shù)在url上面)

(2)get傳輸速度比post快 根據(jù)傳參決定的。(post通過請求體傳參,后臺通過數(shù)據(jù)流接收。速度稍微慢一些。而get通過url傳參可以直接獲取)

(3)post傳輸文件大理論沒有限制  get傳輸文件小大概7-8k ie4k左右

(4)get獲取數(shù)據(jù) post上傳數(shù)據(jù)(上傳的數(shù)據(jù)比較多  而且上傳數(shù)據(jù)都是重要數(shù)據(jù)。所以不論在安全性還是數(shù)據(jù)量級 post是最好的選擇)

6、目前市場上運行的AJAX的真實Web應用程序是什么?

  • 推特
  • Facebook
  • Gmail
  • Javatpoint
  • Youtube

7、AJAX有哪些安全問題?

  • AJAX源代碼是可讀的
  • 攻擊者可以將腳本插入系統(tǒng)

8、同步和異步請求有什么區(qū)別?

 同步請求會阻止用戶,直到檢索到響應,而異步不會阻止用戶。

9、AJAX使用了哪些技術?

  • HTML / XHTML和CSS - 這些技術用于顯示內(nèi)容和樣式。
  • DOM - 用于動態(tài)顯示和與數(shù)據(jù)交互。
  • XML - 用于與服務器之間傳送數(shù)據(jù)
  • XMLHttpRequest - 用于客戶端和服務器之間的異步通信。
  • JavaScript - 主要用于客戶端驗證。

10、XMLHttpRequest的目的是什么?

  • 它將后臺數(shù)據(jù)發(fā)送到服務器。
  • 它從服務器請求數(shù)據(jù)。
  • 它從服務器接收數(shù)據(jù)。
  • 它在不重新加載頁面的情況下更新數(shù)據(jù)。

11、XMLHttpRequest的屬性是什么?

下面給出了XMLHttpRequest對象的重要屬性。

  • onReadyStateChange - 只要readystate屬性發(fā)生變化,就會調(diào)用它。
  • readyState - 表示請求的狀態(tài)。
  • responseText - 它將響應作為文本返回。
  • responseXML - 它以XML格式返回響應。
  • status - 返回請求的狀態(tài)編號。
  • statusText - 返回狀態(tài)的詳細信息。

12、XMLHttpRequest的重要方法是什么?

  • abort() - 用于取消當前請求。
  • getAllResponseHeaders() - 返回標題詳細信息。
  • getResponseHeader() - 返回特定的標題詳細信息。
  • open() - 用于打開請求。
  • send() - 用于發(fā)送請求。
  • setRequestHeader() - 它添加了請求標頭。

13、XMLHttpRequest使用的open()方法有哪些類型?

  • open(method,URL) - 它打開指定get或post方法和URL的請求。
  • open(method,URL,async) - 它與上面相同但是指定異步或不指定。
  • open(method,URL,async,userName,password) - 與上面相同,但指定用戶名和密碼。

14、XMLHttpRequest使用的send()方法有哪些類型?

  • send() - 它發(fā)送get請求
  • send(string) - 發(fā)送帖子請求。

15、回調(diào)函數(shù)在AJAX中的作用是什么?

 回調(diào)函數(shù)將函數(shù)作為參數(shù)傳遞給另一個函數(shù)。如果我們必須在網(wǎng)站上執(zhí)行各種AJAX任務,那么我們可以創(chuàng)建一個用于執(zhí)行XMLHttpRequest的函數(shù)和一個用于執(zhí)行每個AJAX任務的回調(diào)函數(shù)。

16、AJAX中的JSON是什么?

 JSON代表JavaScript Object Notation。在AJAX中,它用于在瀏覽器和服務器之間交換數(shù)據(jù)。它很容易理解,數(shù)據(jù)交換比XML快。它支持數(shù)組,對象,字符串,數(shù)字和值。

request.onreadystatechange   =  function (){    
      if(request.readyState  == 4)    
      {    
        var  jsonObj  =  JSON .parse(request.responseText); // JSON.parse()返回JSON對象    
        的document.getElementById( “日期”).innerHTML  =   jsonObj .date;    
        的document.getElementById( “時間”).innerHTML  =  jsonObj .時間;    
      }    
   } 

17、調(diào)試AJAX應用程序的工具有哪些?

 有幾種用于調(diào)試AJAX應用程序的工具。

  • 適用于Mozilla Firefox的Firebug
  • 適用于IE的Fiddler(Internet Explorer)
  • JavaScript HTML調(diào)試器
  • MyEclipse AJAX工具
  • 腳本調(diào)試器

18、AJAX中的回發(fā)類型有哪些?

 在AJAX中有兩種類型的回發(fā)。

  • 同步回發(fā) - 它會阻止客戶端直到操作完成。
  • 異步回發(fā) - 它不會阻止客戶端。

19、AJAX中請求的準備狀態(tài)有哪些?

 在AJAX中有5個請求的就緒狀態(tài)。

  • 0:意味著未被發(fā)現(xiàn)
  • 1:表示已打開
  • 2:表示HEADERS_RECEIVED
  • 3:表示裝載
  • 4:表示完成

20、常見的AJAX框架是什么?

  • Dojo Toolkit
  • YUI
  • Google Web Toolkit(GWT)
  • Spry
  • MooTools
  • Prototype

21、你如何測試AJAX代碼?

 JUnit是客戶端JavaScript的開源單元測試框架。需要創(chuàng)建測試用例。單元測試用例是一個代碼,用于確保程序邏輯按預期工作。

22、JavaScript和AJAX有什么區(qū)別?

JavaScript AJAX
JavaScript是一種基于對象的腳本語言。 AJAX是一組相互關聯(lián)的技術,如JavaScript,XML,HTML,CSS等
它請求服務器并等待響應。 它向服務器發(fā)送請求,不等待響應。
重新加載頁面時會占用更多帶寬。 它不會重新加載頁面,因此占用的帶寬更少。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號