Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 由于使用HTTP响应时间过长,移动应用程序获取错误_Jquery_Ajax_Web Services_Blackberry - Fatal编程技术网

Jquery 由于使用HTTP响应时间过长,移动应用程序获取错误

Jquery 由于使用HTTP响应时间过长,移动应用程序获取错误,jquery,ajax,web-services,blackberry,Jquery,Ajax,Web Services,Blackberry,我正在Blackberry WebWorks中开发一个移动本机应用程序。我的应用程序运行在Tomcat 5.5上,它从运行在IIS 7.5上的ASMX Web服务获取数据 在数据获取操作期间,我在2分钟后收到超时。我克服不了这个问题,请帮我克服 我正在设置ajax超时,在配置文件中我也提到了超时,但我仍然得到了超时 经过长时间的研究,我发现问题在于ASMX服务调用。在特定的ASMX服务方法中,由于涉及大量计算,该方法平均需要4分钟才能响应结果。由于HTTP响应在很长一段时间内没有返回,调用的应用

我正在Blackberry WebWorks中开发一个移动本机应用程序。我的应用程序运行在Tomcat 5.5上,它从运行在IIS 7.5上的ASMX Web服务获取数据

在数据获取操作期间,我在2分钟后收到超时。我克服不了这个问题,请帮我克服

我正在设置ajax超时,在配置文件中我也提到了超时,但我仍然得到了超时

经过长时间的研究,我发现问题在于ASMX服务调用。在特定的ASMX服务方法中,由于涉及大量计算,该方法平均需要4分钟才能响应结果。由于HTTP响应在很长一段时间内没有返回,调用的应用程序将超时,因此我的ASMX Web服务工作正常

我尝试了Tomcat5.5的server.xml文件的一切,包括了所有可能克服这一问题的属性,但没有结果


请在这方面帮助我

您需要告诉我们更多关于“巨大计算”的信息,以获得具体帮助。根据计算的性质,可以采用以下几种策略:

  • 如果客户机正在发送一个较大的工作负载,请将其分解为两分钟内即可满足的较小请求

  • 在您的响应格式中包含某种类型的无操作操作,如果完整响应尚未准备好,请让ASMX服务定期发送无操作。这将在长时间计算继续时保持连接的活动状态。但是,这需要对客户机和ASMX服务之间的所有缓冲有相当深入的了解,因为您不希望使用NOOP操作来缓冲,因为您专门使用它来保持连接打开。这可能很难理解

  • 将单个请求/响应转换为两个请求/响应对,一个用于“启动”,另一个用于“检查”。“start”API启动计算,并返回某种ID,客户端可以使用该ID调用“check”API以查看计算是否完成,并获取结果


  • 如果要这样做,那么您需要研究如何利用
    node.js
    socket.io
    ,这样您就可以
    将响应推回到客户机
    ,而不必保持一个HTTPD线程处于打开状态?这种情况经常发生。全部的这个时间到了,谢谢。请告诉我怎么做?哦,为什么,请告诉我如何使用socket.io解决我的问题的详细信息如果有可能的话,看看长时间运行的计算是否可以被分解为预编译和请求。如果任何计算都需要四分钟的服务器时间,那么不管怎么说,它是低效的,即使它只是在高峰请求(和电费)期间运行。感谢Michael Donohue的回复。庞大的计算是做一些保险费计算取决于一些风险,但它的工作很好,因为它是有效的工作,而应用程序正在运行的网络浏览器。在该应用程序中,当我在netbeans7中看到应用程序在调试模式下的响应时,我收到响应,但每次1分钟后,手机应用程序都会与tomcat服务器断开连接,在ASMX服务能够向其提供结果之前。由于某些限制,不可能中断操作,因为该操作需要比正常时间段更长的时间来提供计算结果。