http://blog.urbantastic.com/post/81336210/tech-tuesday-the-fiddly-bits
Urbantastic 的 Heath 描述了他的 HTML 生成系统:
Urbantastic 中的所有 HTML 都是完全静态的。所有动态数据都通过 AJAX 以 JSON 格式发送,然后使用 Javascript 与 HTML 结合。换句话说,Urbantastic 的服务器软件专门生产和消费 JSON。HTML、CSS、Javascript 和图像都通过不同的服务(普通 Nginx 服务器)发送。
我认为这是一个有趣的模型,因为它在物理上将表示与数据分开。我不是架构专家,但似乎效率和稳定性会有所提高。
但是,以下问题与我有关:
[主观] Clojure 非常强大;Javascript 不是。在为另一个目标创建的语言上编写所有内容生成会产生一些痛苦(想象用 CSS 编写 Javascript 类型的代码)。除非他有一个用于生成 Javascript 的宏系统,否则 Heath 可能会在 JavaScript 和 Clojure 之间不断切换。他还会有很多JS代码;可能比 Clojure 更多。在切换到基于 LISP 的语言时,这在功能、快速开发、简洁性以及我们正在考虑的所有方面可能并不好。
[性能] 我对此不确定,但在用户机器上渲染所有内容可能会滞后。
[可访问性] 如果您禁用了 JS,则根本无法使用站点。
[accessibility#2] 我怀疑大量使用 JavaScript 填充的动态数据会产生跨浏览器问题。
任何人都可以发表评论吗?我有兴趣阅读您对这种架构的意见。
参考: