Couchapp 是 Web 框架的现实替代品吗? [关闭]

Posted

技术标签:

【中文标题】Couchapp 是 Web 框架的现实替代品吗? [关闭]【英文标题】:Is Couchapp a realistic substitution for a web framework? [closed] 【发布时间】:2011-05-02 14:28:43 【问题描述】:

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

【问题讨论】:

我认为这是一个非常有效的问题。我想听听那些将 CouchDB 与传统框架和 Couchapp 一起使用的人的意见,了解其优缺点。 【参考方案1】:

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

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

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

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

这就是 Kanso 的设计目的 :)

【讨论】:

我得去看看 :)【参考方案2】:

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

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

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

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

【讨论】:

AJAX 和 "obtrusive Javascript" 是完全不同的问题。使用不显眼的 Javascript 编写基于 AJAX 的应用程序是完全合理的。事实上,它是推荐的。您对性能的断言也值得怀疑:快速发送框架,并在一秒钟内发送数据,通常会给用户“正在发生的事情”并鼓励他们等待结果。在客户端做处理减少了服务器的负载,这也是一件好事。 “CouchApp 本质上要求您在整个应用程序中使用 AJAX”。如果您不想使用,则根本不必使用 Ajax。 不,你不需要使用 AJAX。但是,如果您不这样做,您将非常有限。特别是,您一次只能处理一个数据集。 我知道是 4 年后的事了,但我阅读这篇文章是为了列出 使用 CouchApps 的原因,而不是反对它。

以上是关于Couchapp 是 Web 框架的现实替代品吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

node.js 可以像 CouchApp 一样执行从 CouchDB 提取的 JavaScript 函数吗?如何?

今天 CouchApp 框架都有哪些可能性?

Django Asyc Views 是 ajax 替代品吗?

Tornado入门

Web开发的机器学习框架

现在都有哪些 基于node.js的框架