5

假设您要使用 couchdb,尝试使用 couchapp 代替 django、rails 或 asp.net mvc 是否现实?有什么好处和坏处?

4

2 回答 2

4

是的,通常 CouchApp 会为整个应用程序使用 AJAX,尽管这不是必需的。可以创建一个 CouchApp 来为没有 JS(和搜索引擎)的浏览器提供回退并呈现核心内容。

这通常有点复杂,需要编写两次渲染函数。一旦在设计文档中作为显示或列表功能,然后再次作为您的客户端代码。但是,我一直在开发一个名为 Kanso 的 CouchApp 框架它允许您编写一次代码,并在可能的情况下让它在客户端运行,如果不是,则回退到 CouchDB。

我在 CouchApps 中发现的另一个问题是,对于更大的应用程序,验证和权限代码会很快变得非常复杂。因此Kanso还提供了类似于您可能在 Django 或 Rails 中使用的其他模型系统的类型定义。

需要明确一点:没有 JS 的浏览器不会获得相同的体验,但您可以做的是渲染页面的基本内容,然后使用 JavaScript 逐步增强它。

这就是Kanso的设计目的 :)

于 2011-05-02T16:43:28.117 回答
1

就目前而言,CouchApp 本质上要求您对整个应用程序使用 AJAX。一般来说,这对于用户体验来说很糟糕,因为您正在下载骨架标记,运行 JS,通常会再次访问服务器,然后动态添加更多标记。(与只是预先下载完成的标记相反)此外,在浏览器上缓存数据与在服务器上缓存数据是不同的野兽。此外,当您拥有仅 AJAX 的内容时,SEO 会更加困难。

基本上,您看到人们反对仅 AJAX(即,突兀的 JavaScript)Web 应用程序的所有原因都将在这种情况下成立。

另一方面,您可以将整个应用程序(以及所有相关数据)复制到任何运行 CouchDB 的节点。我可以看到您的应用程序的移动版本在离线时仅运行 CouchApp,因为您不一定可以使用完整的 Web 服务器堆栈。此外,与学习 Rails、Django 或 Express.js 等框架相比,使用 CouchApp 很容易启动和运行。

我对 CouchApps 最终成为一个完整的 Web 应用程序解决方案寄予厚望,因为我是 CouchDB 作为数据库的忠实粉丝。然而,现在它对我来说是不可行的,因为它严重依赖于突兀的 JavaScript。

于 2011-05-02T14:44:15.103 回答