为什么Page_Load()在长时间加载的页面上会出现两次?

时间:2017-07-25 18:17:23

标签: c# proxy webforms page-lifecycle

我有一个页面,根据它带回来的数据可能需要很长时间(分钟)才能加载,大部分时间花费在从Page_Load()调用的方法中。我注意到,一旦达到某个时间阈值,Page_Load()将再次被击中。当我开始观看Chrome开发工具和Firebug中的网络标签时,我没有看到任何第二个请求,但我确实注意到了一些事情:

在Firebug中,对于长时间运行的请求,它会暂时闪烁状态代码407。

在Chrome Timing选项卡中,它显示停顿几分钟,然后在第二次点击Page_Load()之前的代理协商。

这里发生了什么?我对代理和身份验证的工作方式并不是很了解,但是在页面加载过程中确实会出现一些重新身份验证,导致整个页面生命周期重新启动。

1 个答案:

答案 0 :(得分:0)

407是代理身份验证质询状态,这意味着某些代理正在请求身份验证。

根据身份验证方案(例如Basic,NTLM,Negotiate,Digest等),将会有后续请求与其他身份验证信息(代理授权标头)。由于这些是重复请求,您可能不会注意到重新请求。如果涉及大的有效载荷(例如POST / PUT上的大型机身),那么这些也需要再次发送。