当页面长时间打开时,JQuery ajax 调用中断
Posted
技术标签:
【中文标题】当页面长时间打开时,JQuery ajax 调用中断【英文标题】:JQuery ajax call breaks when page sits open for a long time 【发布时间】:2013-01-04 21:51:09 【问题描述】:首先,我是 javascript 和 JQuery 的新手,所以我希望这不是一个新手问题。
我正在进行的项目是一个 MVC3 应用程序。我正在按如下方式进行 AJAX 调用,一切正常。
$.ajax(
url: 'blah',
data: data1: '', data2: '',
dataType: 'json',
success: function(val)
,
error: function(message)
alert("Error!");
我的问题是,如果屏幕长时间处于打开状态,没有用户交互,我的 ajax 调用不会被触发,我会收到错误消息。我在控制器函数上的 C# 代码中设置了一个断点,该函数在长时间不活动后被调用并且永远不会被击中。
再次重申,它可以正常工作,但只有在长时间不活动(30 分钟以上)后才会中断。这是一个边缘情况,但仍然是一个问题。
谢谢!
【问题讨论】:
为了更新,抛出了alert("Error!"),所以我知道函数被调用了。 会不会是会话超时?您是否调试过应用程序并请求生命周期事件? 这很有可能..有没有好的javascript/jquery方法检查页面是否超时? @user959729 这里有很多答案link 您提供的链接非常完美。这就是我一直在寻找的。谢谢@ROYFinley 【参考方案1】:如果您离开会话超过 30 分钟,您的会话很可能超时。你可以做两件事(我想还有很多事情要做!)
您可以在 web.config 文件中修改会话超时:
注意:如果您在此配置中花费过多时间,并且访问次数过多,则您的 Web 服务器可能存在内存问题。
-
您可以使用以下属性在您的控制器中装饰您的操作:
[允许匿名]
希望对你有帮助!
【讨论】:
以上是关于当页面长时间打开时,JQuery ajax 调用中断的主要内容,如果未能解决你的问题,请参考以下文章
首次打开时,Jquery Mobile AJAX 弹出窗口出现在页面底部