假设您要使用couchdb,尝试使用couchapp代替django,rails或asp.net mvc是否现实?有什么好处和缺点?
答案 0 :(得分:4)
是的,通常CouchApp会在整个应用程序中使用AJAX,但这不是必需的。可以创建一个CouchApp,它将为没有JS(和搜索引擎)的浏览器提供后备和渲染核心内容。
这通常有点复杂,并且会将渲染函数写入两次。一旦在设计文档中作为show或list函数,然后再次为您的客户端代码。但是,我一直在研究名为Kanso的CouchApp框架,该框架允许您编写一次代码并在可能的情况下在客户端运行,然后在不支持的情况下回退到CouchDB。
我在CouchApps中发现的另一个问题是,使用更大的应用程序,验证和权限代码会变得非常复杂。因此,Kanso还提供类似于您可能在Django或Rails中使用的其他模型系统的类型定义。
要明确一点:对于没有JS的浏览器,你将无法获得相同的体验,但可以做的是呈现页面的基本内容,然后逐步使用JavaScript进行增强。
这是Kanso的设计目的:)
答案 1 :(得分:1)
目前,CouchApp基本上要求您在整个应用程序中使用AJAX。一般来说,这对于用户体验来说很糟糕,因为您正在下载骨架标记,运行JS,通常再次访问服务器,然后动态添加更多标记。 (而不是仅仅预先下载完成的标记)此外,缓存数据与浏览器上的浏览器不同。此外,当您拥有仅限AJAX的内容时,SEO会更加困难。
基本上,您认为人们反对仅使用AJAX(即突兀的JavaScript)网络应用程序的所有原因都会在这种情况下持续存在。
另一方面,您可以将整个应用程序(以及所有相关数据)复制到运行CouchDB的任何节点。我可以看到您的应用程序的移动版本在离线时仅运行CouchApp,因为您不一定可以使用完整的Web服务器堆栈。此外,使用CouchApp轻松启动和运行,而不是学习像Rails,Django或Express.js这样的框架。
我非常希望CouchApps最终成为一个完整的Web应用程序解决方案,因为我是CouchDB作为数据库的忠实粉丝。但是,现在它对我来说是不可行的,因为它严重依赖于突兀的JavaScript。