Ajax的使用及相關

Ajax的使用及相關

  1. Ajax是什麼?如何創建個一個Ajax Ajax並不算是一種新的技術,全稱是asychronous javascript and xml,可以說是已有技術的組合,主要用來實現客戶端與服務器端的異步通信效果,實現頁面的局部刷新,早期的瀏覽器並不能原生支持ajax,可以使用隱藏幀(iframe)方式變相實現異步效果,後來的瀏覽器提供了對ajax的原生支持
    使用ajax原生方式發送請求主要通過XMLHttpRequest(標準瀏覽器)、ActiveXObject(IE瀏覽器)對象實現異步通信效果
    基本步驟:
var xhr =null;//創建對象 
if(window.XMLHttpRequest){
	xhr = new XMLHttpRequest();
}else{
	xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
     xhr.open(“方式”,”地址”,”標誌位”);//初始化請求 
     xhr.setRequestHeader(“”,””);//設置http頭信息 
     xhr.onreadystatechange =function(){}//指定回調函數 
     xhr.send();//發送請求 

js框架(jQuery/EXTJS等)提供的ajax API對原生的ajax進行了封裝,熟悉了基礎理論,再學習別的框架就會得心 應手,好多都是換湯不換藥的內容 。

  1. 同步和異步的區別?
    同步:阻塞的
    -張三叫李四去喫飯,李四一直忙得不停,張三一直等着,直到李四忙完兩個人一塊去喫飯
    =瀏覽器向服務器請求數據,服務器比較忙,瀏覽器一直等着(頁面白屏),直到服務器返回數據,瀏覽器才能顯示頁面
    異步:非阻塞的
    -張三叫李四去喫飯,李四在忙,張三說了一聲然後自己就去喫飯了,李四忙完後自己去喫
    =瀏覽器向服務器請求數據,服務器比較忙,瀏覽器可以自如的幹原來的事情(顯示頁面),服務器返回數據的時候通知瀏覽器一聲,瀏覽器把返回的數據再渲染到頁面,局部更新
  2. 如何解決跨域問題?
    理解跨域的概念:協議、域名、端口都相同才同域,否則都是跨域
    出於安全考慮,服務器不允許ajax跨域獲取數據,但是可以跨域獲取文件內容,所以基於這一點,可以動態創建script標籤,使用標籤的src屬性訪問js文件的形式獲取js腳本,並且這個js腳本中的內容是函數調用,該函數調用的參數是服務器返回的數據,爲了獲取這裏的參數數據,需要事先在頁面中定義回調函數,在回調函數中處理服務器返回的數據,這就是解決跨域問題的主流解決方案
  3. 頁面編碼和被請求的資源編碼如果不一致如何處理?
    對於ajax請求傳遞的參數,如果是get請求方式,參數如果傳遞中文,在有些瀏覽器會亂碼,不同的瀏覽器對參數編碼的處理方式不同,所以對於get請求的參數需要使用 encodeURIComponent函數對參數進行編碼處理,後臺開發語言都有相應的解碼api。對於post請求不需要進行編碼
  4. ajax 的請求過程
    1 創建XMLHttpRequest對象,也就是創建一個異步調用對象
    2 創建一個新的HTTP請求,並指定該HTTP請求的方法、URL及驗證信息
    3.設置響應HTTP請求狀態變化的函數
    4.發送HTTP請求
    5.獲取異步調用返回的數據
    6.使用JavaScript和DOM實現局部刷新
  5. GET和POST的區別
    GET:一般用於信息獲取,使用URL傳遞參數,對所發送信息的數量也有限制,一般在2000個字符,有的瀏覽器是8000個字符
    POST:一般用於修改服務器上的資源,對所發送的信息沒有限制
    在以下情況中,請使用 POST 請求:
    1、 無法使用緩存文件(更新服務器上的文件或數據庫)
    2、向服務器發送大量數據(POST 沒有數據量限制)
    3、發送包含未知字符的用戶輸入時,POST 比 GET 更穩定也更可靠
    9、ajax 是什麼?ajax 的交互模型?同步和異步的區別?如何解決跨域問題?
    1、通過異步模式,提升了用戶體驗
    2、 優化了瀏覽器和服務器之間的傳輸,減少不必要的數據往返,減少了帶寬佔用
    3.、Ajax在客戶端運行,承擔了一部分本來由服務器承擔的工作,減少了大用戶量下的服務器負載。
  6. Ajax的最大的特點: Ajax可以實現異步通信效果,實現頁面局部刷新,帶來更好的用戶體驗;按需獲取數據,節約帶寬資源;
  7. ajax的缺點:
    1、ajax不支持瀏覽器back按鈕。
    2、安全問題 AJAX暴露了與服務器交互的細節。
    3、對搜索引擎的支持比較弱。
    4、破壞了程序的異常機制。
  8. ajax請求的時候get 和post方式的區別:get一般用來進行查詢操作,url地址有長度限制,請求的參數都暴露在url地址當中,如果傳遞中文參數,需要自己進行編碼操作,安全性較低。
    post請求方式主要用來提交數據,沒有數據長度的限制,提交的數據內容存在於http請求體中,數據不會暴漏在url地址中。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章