即时保存/恢复整个dom结构,想到2个方案方案1:
    用js, 把整个当前dom状态保留到一个save变量里, 然后就算在界面上改了什么,或者改了某些变量,可以用这个save来恢复整个dom树。
    问题是循环引用的object 怎么保存
方案2:
    用C++ 之类, dump/restore firefox内存,需要看firefox源码有无人搞过这个?

解决方案 »

  1.   

    -_-var save = window;
    一些操作
    window = save; // 这样肯定不行吧如果用Object clone的方法,循环引用的object 怎么办
      

  2.   

    F5一刷新 就 Game Over了...真是个怪异的需求
      

  3.   

    为避免F5刷新? 你存到一个变量里的话,F5照样会刷新.所有DOM和JS都会初始化的.
    要达到要求的话,应该存到COOKIE里.
    不过总体来说,还是挺麻烦的,除非碰上现成的代码.所以等你出到200分,这样还能有点动力去弄弄.
      

  4.   

    存放cookie里也不行吧,cookie最大只能4K,考虑将内容直接写入到文件保存到硬盘上呢?
      

  5.   

    为啥要记录整个的
    只记录改变的不就行了
    弄个集合 在改变页面dom的操作上记录一下
    然后遍历恢复呗
      

  6.   

    专业的测试工具是指模拟鼠标键盘消息来自动化恢复现场的吗? 从F5刷新到 工具完成一系列操作可能时间可能很长,比如期间还要查几次数据库等,能恢复现场的话,可能三五秒就恢复了
    调试的话,比如调试一个模块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时候,还能通过这个功能来 即时存档/即时读取...
      

  7.   

    单机JS游戏,倒简单得多,存什么数据是知道的,而且一般数据量很少,而游戏又都会有初始化函数,加上一个从存档恢复的函数就可以.
    调试的情况,就可能复杂些.因为调试本身就是为了调查和发现那些非预期情况.不过,也可以简化点,只保存预期之内想保留的部分.这就要看具体情况了.
    归结起来,就是要存档和读档.而JS要实现这个,就是那些,正轨途径是COOKIE,但有容量限制.其它,就是调用ACTIVEX对象,包括FSO等,用于调试倒是可以的,但用于游戏给其它用户用,就涉及安全信任的问题了.
    考虑到B/S的情况,也可以向S返回数据,由S存到数据库,XML,自定义文件,SESSION中等等,途径更多些.