公司的新項目開始了,項目的前端部分由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技術發展的更快些吧!