2011-08-17 31 views
9

我正在對單頁面應用程序的主幹進行一些盡職調查,並想知道是否可以重新使用相同的視圖/路線來自服務器端的客戶端,以便當谷歌訪問pushstate URL或直接訪問它時,服務器可以生成與客戶端中的骨幹網相同的HTML。在使用Backbone.js pushstate進行seo /書籤時重用服務器上的主幹視圖/路由

不得不維護兩套不同的視圖/路線,一個在客戶端,另一個在服務器上。我已經看到了github上的backnode項目,但是這似乎有點錯過了這一點,最終你不得不兩次編寫相同的骨幹路由器。

只是想知道人們在通過骨幹網使用pushstate url並且需要從服務器提供相同的視圖時通常會如何處理這種情況?人們是否複製代碼或者有更好的方法?

回答

5

我沒有試過,但還沒有這些想法如何使用Node.js和骨幹可能幫助:

http://andyet.net/blog/2011/feb/15/re-using-backbonejs-models-on-the-server-with-node/

http://bennolan.com/2010/08/13/pushstate-and-nodejs.html

基本上只有這樣才能使它所以你不能寫同兩件事情是讓你的node.js服務器和前端客戶端共享相同的路由/模型代碼。如果你在服務器端使用其他的東西(比如Ruby),你必須將node.js放在應用服務器的前面。然後爲新客戶端(推送狀態和客戶端js)創建node.js代理併爲老客戶端/ bot客戶端實際進行渲染工作。

另一種選擇是做什麼jQuery Mobile做的是Hijax方法。想要製作大量HTML5頁面的想法(您必須查看其路由才能看到)。

以及物品是否完整,你應該知道AJAX的谷歌如何抓取:http://code.google.com/web/ajaxcrawling/docs/getting-started.html

+3

我剛剛發現http://www.idiotz.nl/2011/08/28/backbone-everywhere/。我認爲這可能正是我所期待的,因爲他在服務器端獲得了主幹,因此所有視圖都呈現在服務器端,並向客戶端吐出,客戶端從那裏接管,這意味着seo問題得到解決。 – cjroebuck

+0

是的,現在有很多nodejs框架。我在這個博客(見我的個人資料),仍然不確定,所以我一直在玩express + backbone.js +持久性。 –

相關問題