AJAX介紹(數據交互)

大家好,我是修真院一枚程序員,今天給大家介紹一下ajax

1.背景介紹

? ? ? ? ? ? ? ? 做任務7的時候,遇到了獲取驗證碼或者發(fā)送郵件的問題。點擊按鈕,不想刷新頁面和提交表單。 用戶在注冊的時候也想在不提交表單的情況下獲

什么是Ajax?? ? ? ? ??

? ? ? ? ? ? ? ? AJAX即異步的JavaScript與XML技術,指的是一套綜合了多項技術的瀏覽器端網頁開發(fā)技術。? 通過在后臺與服務器進行少量數據交換,Ajax可以使網頁實現異步更新。這意味著可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。? ? 傳統的網頁(不使用 Ajax)如果需要更新內容,必須重載整個網頁頁面。? ? ? ? ? ?

2.知識剖析? ? ? ? ? ? ??

2-1傳統的請求方式

?傳統的web應用程序中,用戶向服務器發(fā)送一個請求,然后等待,服務器接受到用戶的請求然后響應。在這段時間內,用戶會傻乎乎? ? 的盯著一個空白頁面看。這是因為以往的傳輸方式為同步處理方式。長久以來我們對這種web交互模式已經習慣了,并且以使用者的角度來講已經覺得是理所當然的事情了

Ajax的工作方式? ? ??

和傳統的web應用不同,Ajax采取了異步交互避免了用戶請求-等待-應答交互方式的缺點。Ajax在應用程序和服務器中引入了一個中間層---Ajax引擎,它是用Javascript編寫的,在一個隱藏的框架中運行。Ajax引擎負責呈現用戶界面,以及代表用戶和服務器進行交互。Ajax引擎允許用戶和服務器進行異步的交互。用戶無需傻乎乎的盯著空白頁面? ??

3.常見問題??

? ? ? ? 1、參數如何傳遞?

4.解決方案? ? ? ? ??

5.編碼實戰(zhàn)

jQuery方法


Javascript原生方法


原生的講解

(1)在使用xhr對象發(fā)送請求和處理請求響應之前,必須先用js語言創(chuàng)建一個xhr對象。由于xhr對象當前還不是w3c標準,所以才有多種方式進行創(chuàng)建以解決兼容性問題。具體創(chuàng)建方式如下:?

?var xmlhttp;

if (window.XMLHttpRequest)

{// code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp=new XMLHttpRequest();

}

else

{// code for IE6, IE5

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}


? ? ? ? ? ? ? ? (2)向服務器發(fā)送請求

? ? ? ? ? ? ? ? (a) open(method,url,async)

規(guī)定請求的類型、URL以及是否異步處理請求。

? ? ? ? ? ? ? ? method:請求的類型;GET或 POST

? ? ? ? ? ? ? ? url:文件在服務器上的位置

? ? ? ? ? ? ? ? async:true(異步)或 false(同步)

? ? ? ? ? ? ? ? (b)send(string)

? ? ? ? ? ? ? ? 將請求發(fā)送到服務器。

? ? ? ? ? ? ? ? string:僅用于 POST請求


6.擴展思考

? ? ? ? ? ? $http({

url:'data.json',

method:'GET'

}).success(function(data,header,config,status){

//code goes here

}).error(function(data,header,config,status) {

//code goes here

});

var promise = $http({

url:'data.json',

method:'GET'

});

promise.then(function(resp) {

//resp是一個響應對象

? ? ? ? ? ? ? }, function() {

//帶有錯誤信息的resp

})

? ? ? ? ? ? then()方法與其他兩種方法的主要區(qū)別是,它會接收到完整的響應對象,信息更為全面,而success()和error()則會對響應對象進行析構,使用起來更為方便。



7.參考文獻


參考一:什么是跨域


參考二:AngularJS中then和success的區(qū)別


參考三:


8.提問總結

1.為什么要用ajax?

因為使用之后就不用頻繁的提交表單,刷新頁面。有了更好的用戶體驗。

2.有些網址是輸入完成之后就可以檢測?

那個是使用了dom的失去焦點的事件來完成的。

3.@datetimefomart在什么時候加載的?

這個是使用注解驅動來加載的。

下載鏈接

視頻

ppt

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。