【发布时间】:2015-01-20 11:51:51
【问题描述】:
在我的 asp.net Web 应用程序中,会话设置为其默认超时值。据我了解,一旦应用程序空闲并且没有对其执行任何操作,超时就会开始计算分钟数。但是,当我打开表格并开始填写表格时,如果我填写表格的时间超过 20 分钟,那么当我按下“保存”时,应用程序就会注销。我不是不活动的,但实际上我正在填写表格中的数据,所以我不希望会话超时。
有没有办法让会话只开始计算完全没有操作的时间,并让它“感知”用户的输入?
【问题讨论】:
在我的 asp.net Web 应用程序中,会话设置为其默认超时值。据我了解,一旦应用程序空闲并且没有对其执行任何操作,超时就会开始计算分钟数。但是,当我打开表格并开始填写表格时,如果我填写表格的时间超过 20 分钟,那么当我按下“保存”时,应用程序就会注销。我不是不活动的,但实际上我正在填写表格中的数据,所以我不希望会话超时。
有没有办法让会话只开始计算完全没有操作的时间,并让它“感知”用户的输入?
【问题讨论】:
您正在寻找的东西称为“心跳”。有很多方法可以实现这一点 - 最简单的方法取决于您页面中已有的其他资产 - jQuery、AJAX 控件等等。
基本前提是它在后台向服务器发送一个请求,向服务器有效地说“我还在这里”,以阻止超时发生。理想情况下,您的解决方案应该检查 javascript 中的 onkeypress 以确保用户在那里并填写表单。
搜索“heartbeat formfilling javascript asp.net”会导致一些示例想法。
【讨论】: