服务器端生成的 JavaScript 响应

服务器端生成的 JavaScript 响应

Basecamp中的大多数Ajax操作都是在处理服务器生成的JavaScript响应(SJR)。它的工作原理是这样的:


表单通过一种XMLHttpRequest驱动的形式提交。
服务器创建或更新模型对象。
服务器生成包含了针对该模型对象的更新了的HTML模板的一个JavaScript响应。
客户来评估处理由服务器返回的JavaScript,然后会更新DOM。
这种简单的模式有一些重要的优势。


优点#1:重用模版而不影响性能


无论是第一次渲染和随后的模版更新,你都可以重用模版.如果使用Rails,有一部分技术像邮件/信息用于这两种情况。


如果你只返回JSON格式的信息,你得用你的模版将展示这些信息两次(一次是服务器端的第一次回应,一次是客户端随后的更新)—除非你做一个单一面页的JavaScript>1) 以Ajax方式提交表单.


<%><%> 最后评估响应工作是由form_for产生的XMLHttpRequest-powered表单来自动处理的。视图因此由于新消息而更新,此外新消息也通过JS/CSS动画高亮显示。


超越RJS淘宝客程序www.apksf.com 



当我们一开始使用SJR时我们将它和一个叫做RJS的前身一起使用,使用RJS你需要写Ruby模板,然后再将它们转变成JavaScript。它是Coffeescript(或Opalrb,如果你喜欢的话)的简化版,它错误地让许多人舍弃了SJR模式 淘宝客程序。


现在我们不使用RJS了(更迭的原因通常很简单——优势不是那么大,只有极少数情况下才需要的没有必要那么复杂),但我们却一如既往地致力于SJR。


这并不意味着JSON数据在服务器端产生和视图在客户端形成的模式一无是处。对于我们的UI需要很高的保真度的时候,以及像日历这样的,有大量的视图状态需要维护的时候,这样的模式还是非常合适的。当需要走这条路的时候,我们使用Sam的卓越 Eco template system (认为ERB对于CoffeeScript).


如果你的网络应用都是高保真度的UI,那么走上面提到的那个路子是完全没有问题的。只是你正在花费高价给自己购买些花哨的东西,不过这算是个问题。但是如果你的应用有点像Basecamp或者Github这样网络上的以文本为基础的主流应用,那么你完全应该张开双臂拥抱SJR


Russian Doll-caching, Turbolinks 和 SJR的融合简直就是一杯难以置信的给力鸡尾酒。它可以创造出快速的,现代化的,而且非常优美的代码类的网络应用,好好享用吧!

原文链接


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值