浏览器标签/窗口跟踪模式?

时间:2010-02-02 22:09:16

标签: javascript browser memcached

是否有可接受的模式用于跟踪相同标签/窗口正在加载页面?

某些流程(如逐步提交流程)可以从验证相同选项卡要求执行的能力中获益。

例如,有些地方(步骤之间)我们将中间数据存储在memcache中,但这可能会导致问题而无法将数据范围扩展到进程,而不是用户在同一进程上打开另一个选项卡/窗口。

这适用于许多行动/过程。

有些头脑风暴没有提出任何可靠的建议。

想点什么?

1 个答案:

答案 0 :(得分:1)

您可以使用查询参数(如果使用GET请求)或隐藏字段(如果使用POST请求)或两者都维护多步骤进程的状态(如果您进行POST然后重定向,以允许用户使用刷新她的浏览器。)

如果您在服务器上维护状态(例如在DB或memcached中),您可以在查询参数或隐藏字段中保留“事务密钥”。

但是,要小心 - 根据我的经验,可以相当干净地设计这样一个有状态的多阶段过程,但实现并保持非令人惊讶的用户体验可能很棘手。例如,当您在各阶段之间来回移动时会发生什么?你可以明确地允许这个,或者用户可以使用后退按钮,但这个过程应该仍然有意义。

修改

作为一个具体的例子:

  1. 用户点击“启动多步骤流程”,对服务器进行POST
  2. 服务器然后
    • 初始化流程的状态
    • 给它唯一的密钥“A”
    • 将其保存在临时商店(例如memcached)
    • 将用户重定向到“/ process / A / step / 1”
  3. 该过程的下一步是“/ process / A / step / 2”
  4. 用户,在另一个标签页中,再次点击“开始多步骤流程”
  5. 服务器做同样的事情
    • 使用唯一键“B”
    • 重定向到“/ process / B / step / 1”
  6. 第二个过程的下一步是“/ process / B / step / 2”
  7. 这两个进程现在具有独立的服务器端状态