AJAX即「Asynchronous Javascript And XML」(非同步JavaScript和XML),指一種建立互動式網頁應用程式的網頁開發技術。
AJAX = 非同步 JavaScript和XML(標準通用標記語言的子集)。
AJAX 是一種用於建立快速動態網頁的技術。
AJAX 是一種在無需重新載入整個網頁的情況下,能夠更新部分網頁的技術。
透過在後台與伺服器進行少量資料交換,AJAX 可以使網頁實現非同步更新。這意味著可以在不重新載入整個網頁的情況下,對網頁的某個部分進行更新。
傳統的網頁(不使用 AJAX)如果需要更新內容,必須重載整個網頁頁面。
AJAX即「Asynchronous Javascript And XML」(非同步JavaScript和XML),指一個建立互動式網頁應用程式的網頁開發技術。 《傳智播客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中文網其他相關文章!