Single Page Application (單頁應用) 適合你嗎?AJAX不是萬能的

公司的新項目開始了,項目的前端部分由WebWork轉向了GWT, 所以這些天一直在看GWT的東西,結合之前用過的JQuery和Prototype, 有一些想法記錄下來放到blog上。

 

由於AJAX的局部刷新功能,很多系統都變成了Single Page Application, 也就是應用只有一個頁面,根據不同的用戶操作來更新這個頁面的內容,雖然這種做法“簡化”了系統UI部分的開發 (真的簡化了嗎?或許只是心理上的簡化)而且使系統開發跟上了Web開發的AJAX潮流,但是這種一刀切的單頁模式真的適合你的應用嗎?不妨從下面幾個方面來考慮一下

 

1. 你的應用需要被搜索引擎索引嗎? 據我所知,目前所有的搜索引擎還是比較討厭javascript的,也就是說你頁面裏面用ajax更新的動態內容搜索引擎是不能訪問到的。所以如果你的網站需要依靠搜索引擎進行推廣,還是傳統一點比較好。

 

2. 你的應用需要瀏覽器的後退按鈕嗎?幾乎所有的瀏覽器用戶每天都在頻繁的使用瀏覽器的後退按鈕來查看自己剛剛瀏覽過的內容,但是如果你使用了AJAX進行局部刷新,瀏覽過的內容就不能用後退按鈕重現了。目前我所知道的只有GWT使用了iframe的方法實現了後退按鈕的功能:

    <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>,不過沒有研究它的具體解決方法。

 

3. 你的應用想要用戶收藏某個頁面嗎?AJAX單頁應用的特點就是地址欄的url跟瀏覽器顯示內容不是一一對應的關係,所以用戶收藏的頁面重新打開的時候顯示的內容跟收藏時的內容可能是不一樣的。

 

4. 你的應用頁面很複雜嗎?需要用ajax進行復雜頁面的更新嗎? ajax是使用xml, text等文本與服務端進行交互的,大量的傳輸不但影響系統的性能,對系統安全是也很大的威脅。

 

5. 還有一個以前遇到的問題就是IE的cache問題,當時解決的方法就是在每次發送ajax請求的時候都在url後帶一個一個隨機的參數,不知道現在解決了沒有,要不然也是要考慮的一個問題。

 

以上想到的這幾個方面可能已經有了解決方案,發展的問題還是要靠發展來解決,希望AJAX技術發展的更快些吧!

 

發佈了99 篇原創文章 · 獲贊 6 · 訪問量 59萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章