【问题标题】:Reset bootstrap-session-timeout without page refresh在不刷新页面的情况下重置 bootstrap-session-timeout
【发布时间】:2017-02-03 12:21:46
【问题描述】:

我们正在使用 bootstrap-session-timeout 的 Orangehill 分支,它运行良好,但有一个例外,我不知道如何解决这个问题。想知道是否有人可以帮我打开灯。

网站是用 PHP 和 Bootstrap3 和 JQuery3 编写的。

每个页面的页脚都包含激活 bootstrap-session-timeout 的脚本,但没有使用每次移动鼠标时重置计时器的选项。如果在超时期限内没有任何活动,则会弹出功能区,并为用户提供保持连接或退出的选项。

这对网站来说工作得很好,但是我们有一个订单编辑页面,用户可以在其中添加、删除和更新订单上的行。页面在编辑过程中不刷新。添加、删除或更新订单行,链接调用JS函数,然后调用PHP脚本执行更新,然后JS用于动态更新屏幕内容。

每次用户更新订单时,我们都需要重置会话超时计数器。

理想情况下,我们希望在对页面内容进行更新时调用一个函数,但在我们的 JS 中似乎没有一个单独的 bootstrap-session-timeout 函数可用。

希望这是有道理的,并提前感谢任何帮助/指针。

【问题讨论】:

    标签: javascript php twitter-bootstrap session


    【解决方案1】:

    由于没有人回答这个问题,我认为有必要添加我的解决方案,这可能不是最好的,但它确实有效。

    基本上,我们有一个订单输入页面,在输入订单时会保留在原处。即使用户可能在页面上做某事(我们关闭了按键选项),倒数计时器也会继续运行。因此,即使用户可能在 5 分钟前最后一次更新订单(通过 Ajax 调用 PHP API 处理更新),倒数计时器也不会重置,因为页面尚未重新加载。

    我的解决方案是在每次加载 PHP 脚本时将时间戳写入由 PHP session-id 键入的文件。这适用于主页或 API。因此,当倒数计时器结束时,会调用一个超时脚本,它会检查文件中的最后一个活动时间戳是在超时截止点之前还是之后。如果是,则调用注销脚本,如果不是,则刷新当前页面,从而重新加载倒计时。

    【讨论】:

      猜你喜欢
      • 2013-06-04
      • 1970-01-01
      • 2017-05-11
      • 2013-04-07
      • 1970-01-01
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      • 2016-05-25
      相关资源
      最近更新 更多