2011-09-05 90 views
2

我正在研究使用Backbone.js和node.js來編寫一個小型的web應用程序。在客戶端和服務器之間共享代碼很有吸引力。Backbone.js沒有客戶端JavaScript

我無法弄清楚沒有JS(和搜索引擎)的客戶端應該如何與網站進行交互。如何在沒有客戶端JavaScript工作的情況下形成驗證和渲染工作?

當然,我想這樣做沒有代碼重複。在我看來,Backbone.js和其他服務器端js的意義在於,您可以在服務器和客戶端上擁有相同的表單驗證和模板/視圖生成。

+0

表單驗證在服務器上完成。渲染是在服務器上完成的(data - > html translation)。 – Raynos

回答

3

如果你有你的視圖使用JavaScript編碼,搜索引擎是錯誤的,因爲它們符合更傳統的網絡(一個網址,一個國家,一個頁面),並不理解JavaScript。

如果你想提供豐富的體驗和支持搜索引擎,你需要使用優雅的升級。

隨着優雅升級,你代碼你的網站沒有客戶端JavaScript,讓它工作很好漂亮。然後你使用javascript來升級體驗。在大多數情況下,這實際上更容易,因爲升級過程可以自動化。請參閱https://github.com/browserstate/ajaxify

+0

對 - 但我希望在服務器和客戶端之間共享代碼(並讓服務器使用與在客戶端上運行的相同的javascript生成視圖/ html代碼)可以使網站可以在沒有客戶端的情況下工作邊JavaScript *沒有*必須重複的代碼。 –

+0

爲什麼你需要重複代碼? – balupton

+0

我不確定如何讓backbone.js在未啓用JavaScript的客戶端的服務器端呈現視圖。我不確定如何在服務器句柄表單驗證上使用backbone.js。我看過的教程/檢查都沒有顯示backbone.js(或其他框架)在未啓用客戶端js的情況下工作。 –

0

在客戶端驗證表單數據是一種很好的做法,因爲它可以節省用戶不必重新輸入寫入的內容,而不會在服務器上進行驗證。在客戶端進行驗證並不會消除在服務器上進行驗證的需要,因爲您的問題有助於指出,因爲不能保證JavaScript將會運行,甚至不會使用您的服務器上使用的表單。