即时保存/恢复整个dom结构,想到2个方案方案1:
用js, 把整个当前dom状态保留到一个save变量里, 然后就算在界面上改了什么,或者改了某些变量,可以用这个save来恢复整个dom树。
问题是循环引用的object 怎么保存
方案2:
用C++ 之类, dump/restore firefox内存,需要看firefox源码有无人搞过这个?
用js, 把整个当前dom状态保留到一个save变量里, 然后就算在界面上改了什么,或者改了某些变量,可以用这个save来恢复整个dom树。
问题是循环引用的object 怎么保存
方案2:
用C++ 之类, dump/restore firefox内存,需要看firefox源码有无人搞过这个?
一些操作
window = save; // 这样肯定不行吧如果用Object clone的方法,循环引用的object 怎么办
要达到要求的话,应该存到COOKIE里.
不过总体来说,还是挺麻烦的,除非碰上现成的代码.所以等你出到200分,这样还能有点动力去弄弄.
只记录改变的不就行了
弄个集合 在改变页面dom的操作上记录一下
然后遍历恢复呗
调试的话,比如调试一个模块C,而C依赖于模块A和B, 所以要先启动A,B(动态加载A,B的js),然后再启动C(加载C的js)调试, 一旦碰到C里的错误,需要改C的js,然后F5刷新,然后再启动A,B重来一遍。如果在A,B启动完后能保存现场,然后每次改完C的js后 只要恢复现场,然后再启动C就可以了。 这些大都可以通过单元测试来弄,但这边的情况是 并非所有程序员都具有 写出可单元测试代码 的能力-_-
只是一个例子,也许以后打单机web game时候,还能通过这个功能来 即时存档/即时读取...
调试的情况,就可能复杂些.因为调试本身就是为了调查和发现那些非预期情况.不过,也可以简化点,只保存预期之内想保留的部分.这就要看具体情况了.
归结起来,就是要存档和读档.而JS要实现这个,就是那些,正轨途径是COOKIE,但有容量限制.其它,就是调用ACTIVEX对象,包括FSO等,用于调试倒是可以的,但用于游戏给其它用户用,就涉及安全信任的问题了.
考虑到B/S的情况,也可以向S返回数据,由S存到数据库,XML,自定义文件,SESSION中等等,途径更多些.