2010-10-26 56 views
2

我即將構建一個Web應用程序(而不是Web演示文稿),它將通過AJAX(jQuery)將其內容加載到特定的div中。 div上方會有一個菜單,當用戶點擊菜單中的一個項目時,相應的頁面將被加載到主div中。通過AJAX加載Web應用程序內容

我想知道是否有任何缺點和優點,選擇這種模式的Web應用程序。

到目前爲止,我很喜歡瀏覽器後退按鈕和歷史記錄/網址將會消失。

回答

3

兩個可能的缺點是,它可以使用戶難以書籤您的網站內容和困難搜索引擎區分網站上的網頁。

您應該提供更多關於採取此方法的原因的信息。您可能有充分的理由,或者可能是使用技術(AJAX)的情況,因爲它使用起來很酷。

如果您想給用戶快速響應的印象,那麼是的AJAX加載您的網頁,但仍然有不同的網址每頁。這將需要更多的代碼,但它會解決我提到的兩個問題。

http://yourdomain.com/home.aspx //loads its own content via AJAX 

    http://yourdomain.com/contact.aspx //loads its own content via AJAX 

    etc 

這確實是唯一適當的,如果你有很多的內容,或者內容涉及耗時的計算,如金融網站。在大多數情況下,只需要正常加載您的頁面將您的內容分解成分頁塊將會更輕鬆。

+0

我正在使用一個javascript組件庫,它構建了一個漂亮的桌面應用程序,用於查看佈局。問題是,當我去任何其他頁面我必須重建此當前頁面的佈局。在那裏我想通過AJAX加載內容。 – user137348 2010-10-26 10:57:24

+0

這就是我所說的更多信息。聽起來這是使用AJAX的一個很好的理由,而@ lonesomeday的想法聽起來很值得研究。沒有在Silverlight中實現RIA的任何特定原因? – 2010-10-26 11:08:37

+0

任何不以HTML/JS實現RIA的特殊原因? :-)我們的開發人員更熟悉HTML/JS,我閱讀這篇文章http://codeclimber.net.nz/archive/2010/09/02/Is-Silverlight-becoming-a-niche-technology.aspx – user137348 2010-10-26 11:15:13

1

這種方法的主要目的是讓你的網站很難搜索引擎抓取。他們不會閱讀Javascript,因此您的內容不會被他們看到或編入索引。嘗試做progressive enhancement,以便他們(以及任何不使用Javascript的用戶,例如屏幕閱讀器)不會落後。

另一方面,你可以可以保持瀏覽器的歷史功能。這可以使用URL散列完成,例如, http://www.example.com/#home vs http://www.example.com/#about-us。要做到這一點,最好的辦法是讓本Alman的hashchange plugin然後使用hashchange事件:

$(window).hashchange(function(){ 
    var location = window.location.hash; 

    //do your processing here based on the contents of location 
}); 

這將允許用戶使用歷史記錄功能和他們的瀏覽器的書籤添加函數。請參閱他網站上的文檔以獲取更多信息。

+0

感謝您的回覆。該應用程序將是使用JavaScript組件框架的RIA應用程序,所以不會有沒有JS的用戶:-) hashchange插件看起來非常有趣,我一定會看看它。 – user137348 2010-10-26 10:54:11

+0

@user如果您正在構建RIA,您可能對hashchange插件的大哥[BBQ](http://benalman.com/projects/jquery-bbq-plugin/)感興趣,它允許您存儲很多在'location.hash'中的信息。 – lonesomeday 2010-10-26 10:58:22