【发布时间】:2012-08-31 18:29:16
【问题描述】:
在我们管理的 XPage 应用程序中,用户长期以来一直抱怨在使用时不时出现“数据丢失”。这意味着当他们提交文档时,他们有时会刷新页面并且他们刚刚编辑的所有字段都是空白的,或者处于原始页面加载时的状态,因此他们经历了数据丢失。花了很多时间来弄清楚发生了什么,他们执行的每一个操作现在都记录在文档中,以便我可以查看它。我们发现了正在发生的事情,我需要想办法解决它:
- 在 Chrome / IE 的窗口 1 中打开文档 - 浏览器不重要。
- 在浏览器中打开另一个窗口并在应用程序中搜索相同的文档,打开它(默认以阅读模式打开)
- 文档上有多个选项卡,因为有很多信息 - 用户在窗口 2 中的只读副本上转到他们想要从中复制信息的选项卡
- 然后,用户开始在窗口 1 的可编辑版本中输入信息 - 他们希望引用另一个选项卡式面板上的文档部分,从而将其打开到窗口中。
- 用户提交他们的更改。不幸的是,因为他们已经在另一个窗口中打开了文档,然后单击了一个选项卡式面板以打开它的另一部分,所以可编辑版本实际上与服务器内存中的上下文无关(我假设) - 更改丢失了在提交时,用户需要重新输入。
如果他们打开只读版本并且没有在选项卡式面板中导航,他们可以继续在可编辑版本中正常工作。似乎提交文档,即使它处于读取模式,也会破坏可编辑版本与服务器的链接。为什么会这样?如何预防?
我希望阻止他们在另一个窗口中打开它(但不确定如何),作为绝对的最后手段 - 它已成为许多国家/地区的许多用户的一种工作方式。有任何想法吗??
根据要求提供更多信息: 好的,所以文件是问题报告。第一个选项卡上有关调用者、受影响模型等的基本详细信息。有一个附件选项卡,除此之外,还有一个解决方案选项卡。
在识别用户在做什么时,他基本上是说,因为他不记得调用者的名字,想解决调用者的问题,所以他在另一个窗口中打开了文档。似乎有点懒,但无论如何。
我想前段时间有个名叫 John Mackay 的人写了一篇关于跟踪使用 sessionScope 变量选择的选项卡的帖子,我使用该变量有几个原因。因此,选项卡的 onclick 事件将 sessionScope.tabSelected var 设置为所选内容。当我对文档进行完整更新时,这会有所帮助,因为该人上次使用的选项卡是刷新后默认选择的选项卡。因此,当用户在另一个窗口中打开文档时, sessionscope var 也会导致相同的选项卡在那里打开。
如果用户在“解决方案”选项卡上并且他们在另一个窗口中打开文档,则解决方案选项卡也会被选中。然后,他们必须选择“信息”选项卡才能找到呼叫者的姓名,这就是导致问题的原因。也许范围较小的 var 可以修复它?我已经尝试使用 onclick 进行“不更新或验证”和“部分执行”设置,但这并没有解决它。当我明天回到办公室时,我将在不设置范围变量的情况下尝试它,看看这是否解决了任何问题并会报告
【问题讨论】:
-
也许你应该消除问题的根源 - 切换到迫使用户通过打开多个窗口/选项卡来“解决”它的各种选项卡。
-
谢谢,但如果我们不使用它们,由于页面的长度,业务特别要求标签后,这也不是一个选项
-
小帮手怎么样 - 弹出窗口中最重要的数据,在您需要的时间和地点。我可能听起来太笼统了,您应该分享更多细节:选项卡中的内容,您如何绑定数据,有关使用范围变量的详细信息(如果在其他窗口中打开可能会出现问题)等等。
-
更多信息添加在上面的主题中