为什么在运行部分回发的ASP.Net页面时,VS2010调试器中的脚本块会不断增长?

gle*_*ron 23 javascript asp.net debugging internet-explorer visual-studio-2010

在使用包含各种经过验证的部分回发控件的UpdatePanel的ASP.Net页面上,Visual Studio 2010脚本调试器窗口开始显示不断增长的"脚本块"条目列表,这些条目似乎是匿名的,我们自动生成的函数与重新加载面板上的控件.似乎以前更新面板的旧脚本块没有被处理,所以列表只是继续增长,减慢页面和调试器的速度,直到IE关闭,因此可能需要很长时间才能删除数百个块出现了.

这是页面运行方式或调试器工件的问题吗?比较调试和未调试页面的性能似乎是后者,但知道发生了什么以及为什么会很好.

Adn*_*tti 9

那么这是你的答案.

第一道路

http://vishaljoshi.blogspot.com/2009/06/disabling-script-debugging-with-vs-2010.html

基本上当您通过VS2008/2010,IE8和转发进行调试时,脚本调试将自动启用.这受到很多人的批评.然而,几乎没有解决方法.

第一篇是在上面的文章中,它告诉您启用Silverlight调试并告诉您项目和网站的路径,去哪里以及如何启用它.

一旦启用了silverlight调试,JS调试就会被关闭,因为两者都不能并行运行.

缺点(如果你真的认为是这样):VS的Silverlight工具需要安装

第二种方式

一旦app通过单击Debug-> Attach to Process手动运行attach debugger,就可以在不调试的情况下启动应用程序(CTRL + F5).

现在为VS 2008

对于VS 2008,有几种替代方法,如编辑注册表项等等.

如果有人需要VS 2008的帮助,请检查一下. http://blogs.msdn.com/b/greggm/archive/2009/04/06/disabling-script-debugging-in-vs-2008-ie8.aspx

  • @ErikDekker事实并非如此,但后来其他人都没有尝试过.我认为这是由调试器在其自己的文档面板中保留每个动态创建的JavaScript位而不是在进行新的Ajax调用时删除旧的. (4认同)
  • 仍然不确定为什么VS这样做,但这是一个有用的解决方案,值得赏金.及时! (2认同)