2011-09-05 91 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将会运行,甚至不会使用您的服务器上使用的表单。