簡體   English   中英

如何將Backbone.js用於多頁Web應用程序?

[英]How do I use Backbone.js for a multi-page web app?

我一直都使用Backbone的路線(#!/ blah)

但是我意識到,要被Google編入索引,您需要提供該網站的非JavaScript版本。

我不喜歡寫兩次代碼。 因此,我寧願構建一個多頁應用程序而不是一個單頁Web應用程序。

Backbone.js為我提供了“結構”,因此我的JavaScript不會變成斯帕傑蒂的混亂。 但是,我對如何使用Backbone構建多頁應用程序一無所知。

您是否在每個頁面渲染中都包含main.js文件? 路線呢? 你怎么處理那件事呢? 您如何處理模塊化等?

我希望有一個有關如何使用Backbone構建多頁javascript應用程序的教程。

做這樣的事情有很多注意事項,但是這里有兩個關鍵:

服務頁面

您可能希望Web服務器將所有路由都路由到同一靜態頁面(假設它是靜態資產)。 這意味着http://yourdomain.com/*中的所有內容都將投放/var/www/yourdomain.com/index.html 加載靜態頁面后,該頁面上的JS將根據給定的URL決定要執行的操作。

推送狀態

要進行路由,您仍然可以使用主干路由,但不要使用hashbangs( #!/blah樣式url)。 例如,請參見http://backbonejs.org/#History 這將使您無需實際刷新頁面即可導航到實際URL。 如果瀏覽器不支持pushState,則所有內容仍然可以使用,但是它將重新加載頁面。

@Jamie Wong的回答讓您參與其中。 通過使用pushState而不是基於哈希的URL,Google應該將每條路由視為不同的頁面。 但是,由於我假設每條路線的內容都是動態生成的,因此我不清楚Google是否會抓取所有內容。 正如上面@Domenic所述,Google絕對具有訪問動態內容的能力,但問題是:

1)他們可以訪問多少?

2)他們是否嘗試從所有站點或僅從大型數據站點(如Facebook)訪問盡可能多的內容?

您可以稍后嘗試為每個視圖提供默認數據,然后在基於用戶行為的動態內容中分層。 骨干網稱之為自舉。 http://backbonejs.org/#FAQ-bootstrap

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM