最近在写一些 js one-page app, 用过 spine.js,backbone 这类 mvc 框架 ,遇到一些问题,总感觉自己的解决方法比较简陋。
backbone 这类框架,模型层一般都在内存中有缓存,有一些场景中模型的持久化操作,需要在服务器端批量进行,甚至有些操作是在服务器端 Model 的 after/before_update 的 callback 中进行的,这时候需要通知客户端更新内存中的模型。从而更新 view.
我当前的方法:
在上面的问题基础上,有些模型可能只是更新部分属性,而 backbone 中一般都是当模型更新时重绘整个绑定的视图。这样可能导致视图当前状态的丢失 (比如滚动位置,编辑器内容等)
我当前的方法:
以上两个问题,我 google 了一下,找到一些 realtime app 的解决方案,比如 http://derbyjs.com/ 这个框架,能够实时同步 server/client 的模型,并且还能通过类似 xpath 的语句监控某个模型的某些属性。但这类方案一般都比较不成熟,也比较复杂。
请问各位前端高手,有没有比较完美的 pattern 或者心得可以分享一下吗?