我希望一些 Javascript/ASP.Net 专家能在这里给我一些提示。
我编写了一个(不幸的是)使用 UpdatePanel 的应用程序(是的,我知道这是一个愚蠢的想法,但现在为时已晚,我现在更了解它了 - 尽管它是一个内部网站,但我遇到了麻烦与它)
该网站是一个基于网络的时间表网站,一种表格格式。无论如何,它基本上将其中的所有内容保存在更新面板中,并且每分钟自动保存一次。这对我来说似乎工作正常,但我使用 firefox。具有更多时间表条目和 IE7 的其他用户会遇到 IE 内存使用量增加和浏览器速度变慢的问题。
我运行了 Sieve(检查网站上的内存泄漏),很明显它很糟糕: alt text http://rodh.org/images/Programming/sievemain.png
那是我的网站已加载并运行了一段时间,在下降时刷新它并离开它,你可以看到它每分钟跳一次。下降之前时间轴上的区域是当我稍微按下保存按钮时,所以很明显是什么导致了它。 DOM 节点和内存都上升了。
我正在使用 ScriptManager.RegisterClientScriptBlock(主要是为了获取控件的 clientID,以便我可以进行 javascript 总计)以及 page_load 上的 ScriptManager.RegisterStartupScript,以便在部分回发后将焦点设置为相同。也许他们在贡献?
是否有任何工具可以帮助我进一步解决这个问题? Sieve 报告在回发时生成了很多空 div?我以前从未用过筛子,所以也许这种情况总是会发生? alt text http://rodh.org/images/Programming/sievnodes.png
有没有我可以做的某种代码分析,或者至少让我看到每次创建的新 DOM 节点的东西......
我认为 hte 问题可能与我的 hackery 代码有关以获取客户端 ID,它将它们存储在一个数组中,然后在每次回发时重新创建 taht 数组,也许那里出了问题? 我已经上传了执行该黑客操作的 JS 文件,以及后面的代码,以防有人需要更多信息。 http://rodh.org/images/Programming/javascript.txt http://rodh.org/images/Programming/codebehind.txt
所以我想我的问题是: - 任何人都可以立即想到会导致这种情况的任何事情吗? - 在 UpdatePanel 上增加 DOM 使用的一些常见原因是什么(顺便说一句,也使用 Jquery) - 我可以使用哪些工具进行调试?
最佳答案
我可以直接告诉您 Microsoft 知道 IE 问题 (KB 2000262) 与 UpdatePanels。它是 DOM 解析器问题。我有一个网站运行良好,直到某个页面内容大小,然后 IE(所有版本)都适合。 FF 和其他浏览器可以轻松处理相同的页面。
我为提高页面速度所做的事情:
- 尽可能使用 UpdateMode=Conditional
- 实现 KB 2000262 修复
关于javascript - 如何在我的 JS/更新面板站点中调试此内存使用/dom 使用增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1592846/