前端用 MVVM 框架监听和呈现变化,VM 的变化通过 websocket 同步到 Ruby 后端的 VM,反之也将后端的变化同步到前端。
Ruby 维护数据的逻辑,Js 维护界面的逻辑,前后的接口就由框架去维护,保证兼容就可以了。
其实这本身只是 API 的包装,不过重点是可以抛弃掉 HTTP 的 请求/响应 机制,因为这实在是太费事了。。信息传递必须通过一次一次的请求,而每次会话都需要初始化。
当然这种东西不会适合普通的网站,但是对于一些动态性高的管理界面的制作应该很有用,其实传统 GUI 程序本来就是这样的嘛。
实现的话我想只要给每个会话分配一片 eval 的空间就可以了,程序在其中执行,过时的会话进行序列化储存或者销毁掉,这样来提供多用户的支持。
双向绑定的话我已经实践过了,还是很不错的诶。