我有两个定时器,每个定时器在呈现页面后立即触发异步回发。每个异步回发都会加载一些昂贵的数据。所以,当我调试它时,似乎发生了第一次异步回发并显示了结果,然后第二次异步回发仅在第一次异步回发完成后才发生。
所以,我的问题是由PageRequestManager排队的异步回发或什么/什么?我想我所说的是我想同时执行两个异步回发并在准备好后处理结果。有没有办法让这件事发生?我能看到的是调试的结果吗?
免责声明:我们没有很多用户,但页面需要快速加载。因此,我们不关心处理单个页面需要多少线程。
有什么想法吗?谢谢你的阅读。
答案 0 :(得分:1)
您无法同时制作两个异步回发,因为他们必须访问:
您可以向无会话的HttpHandler发出少量异步请求。如果我错了,请纠正我:)
答案 1 :(得分:0)
所以场景如下:
如果T1和T2在“完全”同时触发,则JavaScript无法在同一时间处理F1和F2,因为JavaScript是单线程环境。其中一个事件(比如F1)必须在另一个事件(F2)被解雇之前完成。
请参阅John Resig的以下精彩文章:How Javascript Timers Work
然而,我的理解是回调C1& C2是异步运行的,因此在关闭服务器C1后,F1可以完成允许F2运行并且C2被激活到服务器。
然后如果说C1在C1之前小数返回,那么C2的结果必须在C1的结果之前完全处理。
那你为什么不看到这种行为?
我不确定,但可能是您的开发环境有效地限制了可以按顺序处理的线程数量?如果您在调试环境之外的Windows服务器上运行它,行为会是什么?