图中当前页面引用了两个 ScriptResource.xsd 脚本文件,其内容是系统生成的 js 脚本:
MicrosoftAjax.js
MicrosoftAjaxWebForms.js
在 MicrosoftAjaxWebForms.js 中有下列一些关键代码,可以用 FireBug 在这些地方下断点查看 UpdatePanel 更新的细节过程。
1316行: updatePanelElement.innerHTML = rendering;
注意这个语句是针对某一个特定的 updatePanel,所以如果回发后有多个 panel 要更新,则会多次跑到这个断点处。
这个语句的调用堆栈大致是:
1087行: this._updatePanel(updatePanelElement, deltaPanelRendering);
859行: function Sys$WebForms$PageRequestManager$_onFormSubmitCompleted(sender, eventArgs) {
859行: function Sys$WebForms$PageRequestManager$_onFormSubmitCompleted(sender, eventArgs) {
基本上客户端的问题如果找不到出错原因,从 859行开始单步调试就能搞清楚了。
如果页面不能在 FireFox 中正常呈现,非要用 IE 调试,也是可以的。用 Visual Studio 2005 进入调试状态后,选择菜单里面的 Debug -> Windows -> Script Explorer 就可以看到所有脚本资源了,打开后一样可以下断点。
如下图所示: