Javascript 浏览器选项卡/窗口跟踪模式?
是否有一种可接受的模式用于跟踪同一选项卡/窗口正在加载的页面 某些流程(如分级提交流程)可以从验证同一选项卡是否请求执行的功能中获益匪浅 例如,在某些地方(步骤之间),我们将中间数据存储在memcache中,但这可能会导致问题,因为无法将该数据范围限定到该进程,而不是用户在同一进程上打开另一个选项卡/窗口 这适用于许多操作/流程 一些头脑风暴没有得出任何可靠的结论Javascript 浏览器选项卡/窗口跟踪模式?,javascript,browser,memcached,Javascript,Browser,Memcached,是否有一种可接受的模式用于跟踪同一选项卡/窗口正在加载的页面 某些流程(如分级提交流程)可以从验证同一选项卡是否请求执行的功能中获益匪浅 例如,在某些地方(步骤之间),我们将中间数据存储在memcache中,但这可能会导致问题,因为无法将该数据范围限定到该进程,而不是用户在同一进程上打开另一个选项卡/窗口 这适用于许多操作/流程 一些头脑风暴没有得出任何可靠的结论 有人知道吗?您可以使用查询参数(如果使用GET请求)或隐藏字段(如果使用POST请求)或两者(如果使用POST然后重定向,以允许用户
有人知道吗?您可以使用查询参数(如果使用GET请求)或隐藏字段(如果使用POST请求)或两者(如果使用POST然后重定向,以允许用户刷新浏览器)来维护多步骤流程的状态 如果您在服务器上维护状态(例如,在DB或memcached中),您可以在查询参数或隐藏字段中保留一个“事务密钥” 但要小心——根据我的经验,可以相当干净地设计这样一个有状态的多阶段流程,但实现和维护一个不令人惊讶的用户体验可能会很棘手。例如,当您在两个阶段之间来回移动时会发生什么?您可以明确地允许这样做,或者用户可以使用“后退”按钮,但该过程仍然有意义 编辑: 作为一个具体例子:
- 初始化进程的状态
- 给它唯一的键“A”
- 将其保存在临时存储中(例如memcached)
- 将用户重定向到“/process/A/step/1”
- 使用唯一键“B”
- 重定向到“/流程/B/步骤/1”
这仍然不能防止在windows之间复制/粘贴URI。然而,这可能是可以接受的风险。如果可以检测到,您至少可以警告用户。浏览器向窗口对象公开一个唯一的选项卡id会很好。:)谢谢你的评论。