2014-01-09 28 views
0

我有一个要求,当会议过期时间还剩一分钟时,向用户显示弹出窗口。假设会话过期时间为5分钟,我需要显示一个弹出窗口“您的会话将在一分钟后过期”,请点击这里如果您想继续,否则点击取消。所以,如果用户点击确定,时间应该再次自动刷新,如果取消,则不需要做任何事情。 为此,我已经在布局与会话相关的逻辑

var myVar = setInterval(function() { myTimer() }, 240000); 
function myTimer() { 
    var r = confirm("Session will expire in a minute. will you like to continue working?"); 
    if (r == true) { 
     var _Id = $("#Id").val(); 

     $.ajax({ 
      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      url: "../Home/ResetUser", 
      data: "{'User_ID':'" + _Id + "'}", 
      dataType: "json", 
      success: function (data) { 
       if (data.Data == 'Done') { 
       } 
      }, 
      error: function (xhr) { 
      } 
     }); 
    } 
    else { 
     window.clearInterval(myVar); 
    } 

做这样的事情在我的共享文件夹,但我有一个问题,那就是我没有在所有的页面得出相同的布局。有些模块有不同的布局,有些页面不需要任何布局。因此,我需要让不同的布局或不使用布局的页面以不同的布局运行。

如果我对不同的布局保持不同的脚本,它会正常工作吗? 另外假设我已经登录,并设置了一个会话变量。现在时间设置为5分钟 和用户来到主页,这是不使用布局,我保持上述脚本。 我在这个页面添加了不同的脚本,并且脚本功能时间开始了。

但是随后用户转到另一个页面,那么会话时间将刷新? 我必须在页面上加载我的上述脚本功能? 我在做正确的事情。

+1

仅供参考,它被命名为“.NET”,而不是“网点”。另外,标题中不需要它,因为它在标签中。 –

+0

脚本有轻微的逻辑瑕疵 - 如果用户在确认出现时离开键盘,并在10分钟后返回 - 如果点击“是”继续工作,则不会刷新其会话,因为它们已经超时。不确定JS确认是否是最佳选择 - 如果会话过期(例如重定向到登录),您可能还需要一些功能才能采取行动。 – Paddy

回答

0

嗨您可以在_viewstart.cshtml文件中编写脚本。

这会为每个请求,不论您使用

布局页面被执行但随后用户去到另一个页面,然后会话时间会刷新?我必须在该页面上加载我的上面的脚本功能?

是的当用户刷新页面或再次请求服务器会话时间将被重置。

这是实现您的要求的一种方式。