程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 結合AJAX的PHP開發之後退、前進和刷新(1)

結合AJAX的PHP開發之後退、前進和刷新(1)

編輯:關於PHP編程

簡介

第1部分介紹了如何用Sajax、PHP和JavaScript開發基本的相冊。在為應用程序建立歷史堆棧的過程中,我們將依靠客戶端技術,並將其直接與第1部分的代碼結合在一起。本文假設讀者了解JavaScript 和浏覽器cookie。

在浏覽器中保存狀態

在網上沖浪的時候,總是從一個頁面到另一個頁面,從一個站點到另一個站點。在這個過程中,Web浏覽器忠實地記錄了您曾經到過何處的歷史記錄,創建了一條面包屑型(breadcrumbs)數字軌跡,沿著這條軌跡能夠一步一步地回到出發點。後退按鈕允許您回到上一個動作之前所在的位置,從這個意義上說它就是Web上的撤銷按鈕。

Web是一種按頁劃分的的媒體。浏覽器工具欄中的後退和前進按鈕指引著浏覽器從一個頁面移動到另一個頁面。當Macromedia的Flash風行一時的時候,開發人員和用戶發現富互聯網應用程序(Rich Internet Application,RIA)打破了這種模式。用戶可以在幾個站點上浏覽,然後登錄一個基於 Flash 的網站,在這個網站上消磨幾分鐘。當用戶單擊後退按鈕時,游戲結束了。用戶沒有回到先前的那個Flash站點,完全不知道到了什麼地方。

對於完全基於Ajax的網站——RIA的另一種形式,情況也是如此。允許用戶與一個頁面進行多次交互的網站很容易受到後退按鈕的困擾,或者受到任何歷史記錄按鈕的困擾(就此而言)。前進和重載按鈕的問題與後退按鈕的問題一樣。Web浏覽器內置的內部歷史記錄機制是一個不可逃避的問題。出於安全的原因,開發人員不能篡改浏覽器歷史記錄或者任何相關按鈕。還有可用性的問題。設想一下,如果後退按鈕突然彈出一個神秘的警告提示或者用戶被打發到一個新的網站上去,用戶該是多麼困惑。

構建歷史堆棧

雖然不能改變浏覽器歷史記錄,但是可以自己構建一個在RIA中使用的歷史記錄。顯然,它在某種程度上應該與浏覽器的標准導航工具分開,但正如前面所說的,富應用程序在一定程度上背離了Web的頁面到頁面的標准模式。

我們將建立一個堆棧來管理應用程序的歷史事件記錄,也就是說存儲一個列表,在表的最後添加元素。堆棧用於按照後進先出(LIFO)的順序存儲數據。雖然回退的時候並沒有刪除堆棧頂部的數據,但這個模型跟我們的需要非常接近。在JavaScript中,堆棧可以用數組來管理。

與堆棧在一起的還有一個指針,指示我們在堆棧中的當前位置。當我們在應用程序中單擊的時候,新的事件將被壓入堆棧頂部,指針指向最後添加的元素。單擊應用程序的後退和前進按鈕時,不會在堆棧中添加新的事件,而是移動堆棧的指針。 想一想使用後退按鈕時歷史堆棧中會發生什麼:浏覽器返回上一次查看的頁面,原來不能用的前進按鈕突然之間變得可用了。浏覽新的頁面時,前進按鈕再次變成灰色。浏覽器歷史記錄中較晚保存的元素將被彈出堆棧,新的事件被壓入堆棧頂部。我們將在自己創建的歷史堆棧中再現這種行為。

我們的目標是創建一組可用的歷史記錄按鈕:後退、前進和刷新,如圖 1 所示。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved