0

我们有一个用 Delphi 和 Intraweb 编写的基于 Web 的产品,可以在公共信息亭(全屏)上运行。

有没有办法使用 Intraweb 显示一个不属于任何会话的登录页面(只是一个标准的 Intraweb 页面),所以只有在用户成功登录时才会创建会话?

4

1 回答 1

0

我们发现这样做的最佳方法是使用 Javascript 每隔 30 秒左右向 Intraweb 发出一个 AJAX 请求,以使 Intraweb 认为该页面仍在使用中,因此不会使会话超时。

Javascript(每 30 秒调用一次 Intraweb AJAX 方法):

<script type="text/javascript">
  document.addEventListener("DOMContentLoaded", function(event) {
      window.setInterval(function() {
          executeAjaxEvent("", null, "ResetSessionTimer", false, null, true);
      }, 30000);
  });

Delphi(私有方法和注册回调):

procedure TfrmLogin.ResetSessionTimer(EventParams: TStringList);
begin
 //Intraweb does everything for us, we just need this method to exist
end;

WebApplication.RegisterCallBack('ResetSessionTimer', ResetSessionTimer);
于 2017-09-12T10:51:25.277 回答