【问题标题】:JavaScript Memory Usage Issue with Ajax and ASP.NETAjax 和 ASP.NET 的 JavaScript 内存使用问题
【发布时间】:2011-06-03 03:37:25
【问题描述】:

我正在使用 C# 处理 ASP.NET 页面。我有一个要输出大字符串的标签。然后我正在清除标签并再次向它输出一个大字符串。我一直在监控我的浏览器 Chrome/IE 的内存使用情况,并注意到即使我清除了我的标签,内存仍在不断增加。需要注意的是,我对这个标签使用了 AJAX,因此按钮只更新标签而不是整个页面。

例如,它开始使用大约 25mb。然后在我向标签输出一个大字符串后,它会跳到大约 27mb。然后我清除标签,它仍然位于 27mb 左右。然后,如果我重复这个过程,内存使用量会持续增加大约 2mb/click。

这是内存泄漏的明显迹象还是与 AJAX 有关?

感谢提供的任何想法/链接!

【问题讨论】:

  • 您的浏览器使用了多少内存与您在服务器上使用的语言或技术无关。如果有的话,这是一个 javascript 问题,而不是 asp.net 或 c# 问题。
  • 你能分享与此相关的 AJAX 和 HTML 代码吗?内存泄漏是可能的,例如谷歌“javascript memory leaks”。但是,如果我们不知道您的代码究竟做了什么,我们就无法判断它是否是一个......
  • @MystereMan 重新标记,但无法更改标题...
  • @TomWij - 好主意。我把asp.net留在里面是因为它可能与生成的asp.net ajax有关。

标签: javascript asp.net ajax memory-management


【解决方案1】:

清除标签后,页面中是否还有其他元素引用了任何大字符串?如果是这样,这可能就是内存增长如此之快的原因。

【讨论】:

    【解决方案2】:

    感谢大家的反馈,这非常有帮助!我确实将其缩小到客户端 javascript 错误,该错误是由于在 ajaxified 面板中使用 ASP.NET Validators 引起的。每次在面板中更新 ASP.NET 验证器时都会重新注册,从而给出奇怪的结果,例如验证摘要多次显示相同的错误消息。这也导致了我的内存泄漏,因为验证器的注册方式是使用 javascript。

    更多关于验证错误的信息可以在这里找到http://jatindersingh.blogspot.com/2009/03/validationsummary-displayed-multiple.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-19
      • 1970-01-01
      相关资源
      最近更新 更多