2016-03-03 160 views
0

我有一个网络应用程序,它使用频繁的$.ajax()调用向服务器传输数据和从服务器传输数据。它在虚拟机主机和客户端之间本地运行。服务器在会话中过多后停止响应请求?

我遇到的问题是,在会话中进行了一定数量的连续呼叫(没有确定实际的号码)后,它似乎切断了。这可能是几秒或几分钟。

我想我分配来电$.ajax()对象,因此他们可能被删除,例如:

myApp.ajaxRegistry.myAjax = $.ajax({ 
    url: '/path/to/server', 
    error: function() { 
      delete myApp.ajaxRegistry.myAjax; 
    } 
    success: function() { 
      delete myApp.ajaxRegistry.myAjax; 
    } 
}); 

我认为可能已经改善,但它可能仅仅是巧合。它仍然经常失败。

我监测到服务器访问日志发生这些故障时,我可以看到它甚至没有提出请求。浏览器控制台中没有Javascript错误。

EDIT

浏览器的网络记录器指示它发出请求,但服务器没有响应(根据apache的访问日志)。几分钟后,它再次开始响应,所以我认为服务器上有配置。

也许值得一提的是虚拟机服务器经常会失去时间(某种令人讨厌的VirtualBox“功能”),所以我想知道这可能是相关的。

UPDATE

我觉得我对服务器时间的直觉可能是正确的。我终于设法让ntp在虚拟机上正常工作,并且几个星期后我还没有遇到这个问题。

+2

没有固有的限制。以什么方式使事情“停止工作”?你怎么能告诉它停止? – Pointy

+0

对于失败的请求,JavaScript的响应看起来如何? – Halcyon

+0

@Pointy:应用停止按照预期行事。我在查看服务器日志的同时触发请求,并且没有将条目添加到日志中。 –

回答

0

只是在一个单独的帖子中得到答案:服务器时间需要准确(至少在这种情况下)或AJAX请求混淆。