Firefox会话还原导致javascript中的错误

时间:2015-03-11 20:47:07

标签: javascript angularjs firefox

Firefox崩溃后,浏览器的恢复功能似乎导致AngularJS绑定不正确。

修改
我正在更新标题以反映可能更接近实际问题的内容。我刚刚在Firefox中发现了Session Store。在我在下面的步骤4中杀死浏览器之后,我可以从我的Firefox配置文件中打开recovery.js并查看案例A的详细信息。我已经通过更改中的值确认了这是数据来自第6步的地方。重新打开Firefox之前直接使用js文件。


我用AngularJS编写了一个Web应用程序,允许我的用户管理他们的法律案件负载。我在Firefox(目前使用36.0.1)中有一个非常奇怪的错误,我可以一致地重现。

摘要:当用户的浏览器或计算机崩溃时,用户会保存一个案例并移动到另一个案例上。当他们重新打开Firefox时,他们之前案例的详细信息现已与最新案例相关联。经过仔细检查,我可以看到,当浏览器重新加载时,会在一瞬间显示正确的案例详细信息,但随后会被错误的详细信息替换。

操作实例:

  1. 用户打开案例A,编辑一些数据并保存。
    • 网址为https://url/cases/A
    • $scope.case从Web服务调用设置为案例A,已更新并发布到Web服务
  2. 用户点击返回待处理案例列表
  3. 用户打开案例B,可能编辑也可能不编辑数据,但不保存
  4. 浏览器崩溃(通过杀死任务重现)
  5. 用户重新打开浏览器并重新加载案例B.
    • 网址为https://url/cases/B
    • $scope.case设置为案例B,但未进行任何网络服务调用
  6. 在几分之一秒后,字段切换到显示案例A.
    • 网址仍为https://url/cases/B
    • $scope.case设置为案例A但未进行任何网络服务调用
  7. 如果用户保存页面,案例B将被案例A的信息覆盖
    • 网址仍为https://url/cases/B
    • Web服务调用与案例A的数据一起传递,但案例B的ID
  8. 注意:

    • 我无法在Chrome或IE中重现此内容
    • 案例详细信息页面绑定到$scope.case
    • 如果我在$scope.init之前发出提醒,则问题不会发生。
    • 我已经在我的javascript更新$scope.case的每个地方编写了控制台日志,但是没有看到切换到案例A的位置。
    • 如果我在上面的步骤3之后清除浏览器缓存,Cookie和表单数据,我仍然可以重现此问题

    这非常离奇。关于这里可能会发生什么的任何想法,或者关于下一步的展望的建议?

    谢谢!

0 个答案:

没有答案