在我开始发布大量代码之前,我想我可以更逻辑地解释一下我的情况。除了使用不同的存储过程之外,我在页面上有八个下拉列表以完全相同的方式填充。返回大量行(大约44000但每行平均只有5个字符)的那些行是不起作用的。
我正在使用Web服务调用来获取数据。使用JQuery ajax调用服务调用。
直接在SSMS中运行时的调用大约需要2秒才能运行。返回的记录越少,一切正常。所以它不是代码逻辑的问题,它是记录数量的问题。
我知道用这么多记录填充任何东西都不是一个好主意,但是这些记录只在极少数情况下才会返回,我宁愿不抓住并避免这种情况,我宁愿程序运行正常。
是否有某些原因让这些电话挂起?我有
<httpRuntime executionTimeout="10000" maxRequestLength="3048576" />
在我看来,虽然它可能很慢,或者说不是很好,但它应该仍然可能!
如果需要,我会发布我的代码。
有什么想法吗?
答案 0 :(得分:0)
尚不清楚为什么请求会挂起。你有某种错误信息吗?如果没有那么可能值得使用Firebug来查看来自服务器的响应,Ajax调用应该出现在Console选项卡中(确保你设置了Show XMLHttpRequests)并且你应该能够深入了解响应对于来自那里的失败请求。
看起来您已设置ASP.NET超时。可能有一个单独的IIS超时在这里发挥作用,但我只是在这里猜测。
我唯一要补充的是,如果您使用ASP.NET Web服务来获取数据,那么在处理大型响应时,将响应序列化为XML的时间可能很长,因此即使数据库查询在2秒,服务器可能需要更长的时间才能通过Web服务返回数据。然后,浏览器需要花费大量时间对其进行反序列化。
答案 1 :(得分:0)
这是因为客户花了这么长时间来填充选择。这个问题解释了填充选择的有效方法:most *efficient* way to populate select with Jquery ajax