【发布时间】:2010-07-18 23:30:13
【问题描述】:
我正在寻找编写大量使用 JavaScript 的 Web 应用程序的最佳可能性。因此,我想向您介绍我的想法,并征求您对此的意见和替代方案:)
1 年前,我开始寻找 PHP 之外的 Web 开发可能性。我找到了 JSP 和 Django。我决定和Django一起去。在使用 Django 启动了一些项目后,我得出这样的结论:对我来说,Django 并没有为简单的 Web 开发提供可能性。我不得不担心太多的功能,尤其是需要保持客户端和服务器代码平衡。
于是我再次开始搜索,发现 CouchDB 为 Ajax 应用程序提供了一种很酷的后端。所以我的想法是使用 CouchDB 作为数据库服务器,它只提供数据验证和存储,并将其他所有内容保留给客户端。这显然不是一个新想法,但我还没有找到任何好的例子。 你知道吗?
我想要一个包含以下组件的架构:
- 数据存储和验证 (CouchDB)
- Web 服务器:处理文件和 WebSocket 或轮询(Tornado 或 Eventlet)
- 客户端 JavaScript 来处理其他所有事情(最喜欢:自写的 MooTools)
- 客户端模板语言(你知道很酷吗?)
对于这些要点,您对使用不同的软件有什么建议吗?
处理如下请求:
初始请求将 JavaScript 文件和基本 HTML(仅 <body> 和 <head> 标签)发送到客户端。加载的 JavaScript 函数创建 HTML 代码并将其插入到 <body> 标记中。从现在开始,网站上的整个导航只请求JSON,它是通过Websocket提供并由客户端JavaScript处理的。
优点:
- 整个代码在客户端用 JavaScript 编写
- 更新动画非常容易实现
- 页面的逻辑将非常轻量级和透明
- 在服务器端可能没有扩展问题
- 由于出色的客户端缓存可能性,应用程序性能非常快。例如使用 Webstorage
缺点:
- 在低硬件机器上模板处理可能很慢?!
- 应用程序代码对所有人公开
问题
- 您知道此类 Web 开发的任何可用解决方案吗?
- 您认为以这种方式编写 Web 应用程序会很古怪吗?
也请看Answer 2
【问题讨论】:
-
不,我也有类似的想法。但也许你应该重申你的问题。现在有点难以回答。
-
您是否考虑过在服务器端使用 CouchDB "shows" 进行模板处理?
-
是的,在客户端处理模板将使表示层保持在一侧。更少的请求开销和更轻松的内容更改更新处理。但也许在客户端和服务器端拥有相同的 Javascript 代码会很酷。
标签: javascript templates html mootools couchdb