首頁  >  文章  >  web前端  >  傳智播客AJAX影片資料分享

傳智播客AJAX影片資料分享

巴扎黑
巴扎黑原創
2017-08-30 14:56:511163瀏覽

AJAX即「Asynchronous Javascript And XML」(非同步JavaScript和XML),指一種建立互動式網頁應用程式的網頁開發技術。

AJAX = 非同步 JavaScript和XML(標準通用標記語言的子集)。

AJAX 是一種用於建立快速動態網頁的技術。

AJAX 是一種在無需重新載入整個網頁的情況下,能夠更新部分網頁的技術。

透過在後台與伺服器進行少量資料交換,AJAX 可以使網頁實現非同步更新。這意味著可以在不重新載入整個網頁的情況下,對網頁的某個部分進行更新。

傳統的網頁(不使用 AJAX)如果需要更新內容,必須重載整個網頁頁面。

AJAX即「Asynchronous Javascript And XML」(非同步JavaScript和XML),指一個建立互動式網頁應用程式的網頁開發技術。 《傳智播客AJAX影片教學》講解了關於AJAX的相關技術。

傳智播客AJAX影片資料分享

影片播放位址:http://www.php.cn/course/565.html

AJAX 開發中的難題

讓我們透過一個簡單的例子來認識這個問題。假設你要建立一個樹狀結構的公告欄系統(BBS),它可以根據用戶請求與伺服器進行交互,動態加載每篇文章的信息,而不是一次性從伺服器載入所有文章資訊。每篇文章有四個相關屬性:系統中可以作為唯一識別的ID、發文者姓名、文章內容以及包含其所有子文章ID的陣列資訊。首先假定有一個名為getArticle()的函數可以載入一篇文章資訊。此函數接收的參數是要載入文章的ID,透過它可從伺服器取得文章資訊。它傳回的物件包含與文章相關的四個屬性:id,name,content和children。例程如下:

function ( id ) {
     var a = getArticle(id);
     document.writeln(a.name + "
" + a.content);
 }

然而你或許會注意到,重複用同一個文章ID呼叫此函數,需要與伺服器之間進行反覆且無益的通訊。想要解決這個問題,可以考慮使用函數 getArticleWithCache(),它相當於一個有快取能力的getArticle()。在這個例子中,getArticle()傳回的資料只是作為一個全域變數被保存下來:

var cache = {};
 function getArticleWithCache ( id ) {
     if ( !cache[id] ) {
         cache[id] = getArticle(id);
     }
     return cache[id];
 }

現在已將讀入的文章快取起來,讓我們再來考慮一下函數backgroundLoad(),它應用我們上面提到的快取機制載入所有文章資訊。其用途是,當讀者在閱讀某篇文章時,從後台預先載入它所有子文章。因為文章資料是樹狀結構的,所以很容易寫一個遞歸的演算法來遍歷樹並且載入所有的文章:

function backgroundLoad ( ids ) {
     for ( var i=0; i < ids.length; i++ ) {
         var a = getArticleWithCache(ids[i]);
         backgroundLoad(a.children);
     }
 }

backgroundLoad ()函數接收一個ID數組作為參數,然後透過每個ID調用前面定義過的getArticldWithCache()方法,這樣就把每個ID對應的文章快取起來。之後再透過已載入文章的子文章ID數組遞歸呼叫backgroundLoad()方法,如此整條文章樹就被快取起來。

以上是傳智播客AJAX影片資料分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn