ajax常見的面試題

1. 什麼是ajax?javascript

  AJAX = Asynchronous (異步) JavaScript and XML,是一種用於建立快速動態網頁的技術。php

2. ajax接受到的數據類型是什麼?css

  2.1 stringjava

  2.2 JSON字符串ajax

  2.3 JSON對象json

3. ajax的適用場景有哪些?優勢和肯定分別是什麼?小程序

  適用場景:表單的失焦驗證,表單的自動補全功能,頁面只須要局部刷新的時候。跨域

  優勢:數組

    1. 頁面局部刷新。瀏覽器

    2. 使用異步方式與服務器通訊,具備更加迅速的響應能力。

    3. AJAX能夠把之前一些服務器負擔的工做轉嫁到客戶端,利用客戶端閒置的能力來處理,減輕服務器和帶寬的負擔,節約空間和寬帶租用成本。而且減輕服務器的負擔,AJAX的原則是「按需取數據」,能夠最大程度的減小冗餘請求和響應對服務器形成的負擔,提高站點性能。

    4. 基於標準化的並被普遍支持的技術,不須要下載插件或者小程序。

  缺點:

    1. AJAX幹掉了Back和History功能,即對瀏覽器機制的破壞。

    2. 安全問題 AJAX暴露了與服務器交互的細節。

    3. 對搜索引擎支持較弱。

    4. AJAX不能很好支持移動設備。

    5. 不易於調試。

4. 建立ajax的步驟?

<script>
		// 1.建立ajax對象-xmlhttprequest對象
		// XMLHttpRequest 對象

		// variable=new XMLHttpRequest();    新版本的瀏覽器
		// variable=new ActiveXObject("Microsoft.XMLHTTP");    //老版本的IE  ,IE5,IE6
		var xhr;
		if(window.XMLHttpRequest){    //常規,若是有,直接使用
			xhr = new XMLHttpRequest();
		}else{   //若是沒有,老版本IE
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
		console.log(xhr)
		console.log("狀態碼:" + xhr.readyState);
		console.log('響應碼:' + xhr.status);
		console.log('響應文本:' + xhr.responseText);
		console.log('步驟一完成')


		// 2.經過監聽ajax的狀態的改變來監聽
		xhr.onreadystatechange = function(){
			console.log('xhr的狀態碼發生了改變');
			console.log("狀態碼:" + xhr.readyState);
			console.log('響應碼:' + xhr.status);
			console.log('響應文本:' + xhr.responseText);
			console.log('\n');
		}
		console.log('步驟二完成')

		// 3.建立請求的消息,鏈接服務器      狀態碼0=>1
		xhr.open('GET','07.php',true);    //最後一個參數是bool,表示同步||異步,true異步
		console.log('步驟三完成')

		// 4.發送
		xhr.send(null);   //若是是post請求,就放post參數,若是是get請求,發送null就好了 
</script>

5. 同步和異步的區別?

  同步會阻塞代碼的運行。

    表明:循環,script加載src

  異步不會阻塞代碼的運行。

    表明:定時器,link加載css,img加載src

6. GET和POST的區別?

  GET:傳遞的參數在地址欄中,發送的數量有限,通常在2000個字符左右。

  POST:傳遞的參數在請求體中,理論上,若是網速良好的狀況下,對發送的參數是沒有限制的。

7. ajax請求是GET和POST的區別?

  get通常用來進行查詢操做,url地址有長度限制,請求的參數都暴露在url地址當中,若是傳遞中文參數,須要本身進行編碼操做,安全性較低。

  post請求方式主要用來提交數據,沒有數據長度的限制,提交的數據內容存在於http請求體中,數據不會暴漏在url地址中。

8. http常見的狀態碼有那些?分別表明是什麼意思?

  200 - 請求成功

  301 - 資源(網頁等)被永久轉移到其它URL

  404 - 請求的資源(網頁等)不存在

  500 - 內部服務器錯誤

9. ajax和JSON對比,二者的優缺點?

  ajax:優勢:可使得頁面不重載所有內容的狀況下加載局部內容,下降數據傳輸量,避免用戶不斷刷新或者跳轉頁面,提升用戶體驗。

       缺點:對搜索引擎不友好;要實現ajax下的先後退功能成本較大;可能形成請求數的增長跨域問題限制

  JSON:優勢:輕量級、易於人的閱讀和編寫,便於機器(JavaScript)解析,支持複合數據類型(數組、對象、字符串、數字)

10. 解釋jsonp的原理,以及爲何不是真正的ajax

  Jsonp並非一種數據格式9,而json是一種數據格式,jsonp是用來解決跨域獲取數據的一種解決方案,具體是經過動態建立script標籤,而後經過標籤的src屬性獲取js文件中的js腳本,該腳本的內容是一個函數調用,參數就是服務器返回的數據,爲了處理這些返回的數據,須要事先在頁面定義好回調函數,本質上使用的並非ajax技術。

相關文章
相關標籤/搜索