摘要
Ajax應用程式由於其豐富的功能、互動性以及快速的響應能力而得到人們的普遍讚許。它可以使用XMLHttpRequest對象動態地載入資料,而不是載入新的頁面。在它大肆進行宣傳以及許多人興奮的同時,有評論指出,Ajax應用程式丟失了瀏覽器的一些重要功能,包括對後退前進按鈕的支援。
本文將首先闡明為什麼在Ajax應用程式中除非顯式地構建後退/前進按鈕以及其它瀏覽器功能,否則它們將無法啟動並執行原因。然後,我們將簡要介紹開發人員如何解決這些問題。最後,我們將看到有關Backbase Ajax引擎如何支援後退/前進按鈕以及其它標準瀏覽器功能的詳細情況。
Ajax應用程式是否需要後退按鈕?
Ajax承諾,可以讓開發人員完全基於標準的Web瀏覽器技術(通常是指DHTML)建立在視覺上迷人的、高度互動Web應用程式。
以前開發人員不得不在功能豐富(具有高度互動性的、迷人的使用者介面)和易於到達(不需要進行用戶端安裝就可以工作在所有Web瀏覽器下的前端)二者之中作出選擇。而Ajax應用程式應該能夠產生既“功能豐富”又“易於到達”的前端。
但是一個介面怎樣才算是“功能豐富”的,而一個應用程式又怎樣才是“易於到達”的呢?
很難精確地定義“功能豐富”的含義,但是卻很容易直覺地認識到:當您看到一個介面時,您就會知道它是不是功能豐富的。象Microsoft Office之類的傳統型應用程式就是功能豐富的。功能豐富的介面使用諸如選項卡和操作功能表這樣的進階UI控制項。這樣的介面提供一些進階互動方法。例如,拖放、對關注的UI元素進行高亮顯示等。傳統的瀏覽器應用程式是功能不豐富的。它們僅限於諸如表單之類的簡單控制項,互動主要是由到新頁面的單擊連結組成。我們只要看看微軟的電子郵件用戶端就可以看出功能豐富和功能不豐富的區別:Outlook是功能豐富的,而Hotmail就是功能不豐富的。
Ajax應用程式已經由於功能豐富而得到人們的普遍讚許。Google的Gmail就是其中最具代表性的例子。Google所開發的其它Ajax應用程式(Google Suggest、 Google Map)、微軟即將推出的名為“Kahuna”的Web郵件用戶端以及Backbase RSS Reader都包含了一些進階控制項和互動模組。可查看Dan Grossman的Top 10 Ajax Applications列表,其中給出了一個讓人印象深刻的功能豐富介面的列表。
通過前面的討論,可以說Ajax應用程式很明顯滿足“功能豐富”的標準。那麼它是不是“易於到達”的呢?
首先,最基本的是,只有介面在Web瀏覽器中啟動並執行應用程式才是“易於到達”的。Ajax應用程式是基於瀏覽器標準的,因此可以通過Web瀏覽器來訪問。
但是,僅僅可以通過Web瀏覽器訪問還不夠。Jakob Nielson在他2000年的文章Flash: 99% Bad中指出,Flash“打破了Web的基本互動方式”。終端使用者希望在使用Web應用程式時所面對的是特定的互動方式。應用程式需要遵從傳統的Web互動方式,並提供以下的可用功能:
後退和前進按鈕可以正常工作,以便終端使用者可以導航到記錄頁面。 使用者應該可以建立書籤。 支援深連結,以保證終端使用者可以將這個頁面通過電子郵件發送給朋友和同事。 重新整理按鈕可以正常工作,以便重新整理當前的狀態而不是重新初始化應用程式。 開發人員可以使用“查看源檔案”看到原始碼。 終端使用者可以使用“尋找”對頁面進行搜尋。 搜尋引擎可以為頁面做索引並建立到搜尋項的深連結。
再看一下Top 10 Ajax Applications列表,我們可以看出,之前討論的大多數Ajax應用程式的確打破了標準的Web互動方式。在下一節中,我們將討論為什麼許多Ajax應用程式會這麼做。