我到处寻找答案,甚至是对这个特定问题的引用都无济于事。我正在使用 JQuery UI 1.8.7 和 JQuery 1.5.1。我有一个对话框,我不仅要在关闭时销毁它,还要在关闭时从 DOM 中删除它。这在 Firefox 中运行良好。然而,当我在 IE7 中做同样的事情时,我看到浏览器的内存使用量激增了 6MB,并且在我完全关闭浏览器之前,这些内存永远不会被回收。所以我的第一个想法是,我的对话框中的某些内容导致内存泄漏。我删除了我添加的所有内容,并使用以下代码制作了一个简单的对话框:
$('<div id="testMe">hello</div>').dialog({
modal: true,
autoOpen: true,
close: function() { $(this).dialog('destroy'); }
});
当我打开这个对话框时,关闭它,然后刷新浏览器。我总是得到比以前多 6MB 的内存。如果我打开这个对话框,然后在关闭它之前刷新浏览器,那么我根本看不到任何内存峰值。我不知道是什么原因造成的——我发现了一堆关于一般 JQuery UI 内存泄漏的线程,但没有一个修复程序可以解决我的情况。
我还认为我项目中的一些其他代码可能会妨碍我。事实并非如此——如果我使用这个 jsFiddle 示例做同样的事情,我也会出现内存峰值! (http://jsfiddle.net/n68Af/1/)。在这一点上,我不知道还能去哪里或还能做什么。我需要销毁这些对话框并将它们从 DOM 中删除 - 在我们的(非常大的)应用程序中已经有相当多的对话框实例基于对话框 Div 在关闭后不再位于 DOM 中这一事实。
编辑:更改模态标志的值无效。此外,我意识到我的示例不会从 DOM 中删除元素。无论我是否这样做,内存泄漏仍然存在。我实际项目中的代码只是使用 $(this).remove() 从 dom 中删除元素。我简化了示例,因为真正的问题是“销毁”调用留下某种循环引用或导致我提到的 6MB 内存峰值的原因。
编辑:深入研究之后,我使用的 JQuery UI 小部件似乎并不重要(我尝试了 Dialog、我自己的自定义小部件和 Button)。只要我从 DOM 中删除小部件引用的元素,我就会在 IE7 中看到巨大的内存泄漏。如果我将元素移动到 DOM 中的其他位置,也会发生内存泄漏。我尝试创建一个“垃圾桶”DIV,我将对话框的所有内容移到其中而不是完全删除它们,但同样的峰值发生了。
如有任何帮助或指导,我们将不胜感激。提前谢谢大家!
最佳答案
$('<div id="testMe">hello</div>').dialog({
modal: true,
autoOpen: true,
close: function() { $(this).dialog('destroy').remove(); }
});
这将从 DOM 中完全删除对话框
关于javascript - 关闭时销毁 JQuery UI 对话框时出现大量 IE7 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7998300/
我正在用Ruby编写一个简单的程序来检查域列表是否被占用。基本上它循环遍历列表,并使用以下函数进行检查。require'rubygems'require'whois'defcheck_domain(domain)c=Whois::Client.newc.query("google.com").available?end程序不断出错(即使我在google.com中进行硬编码),并打印以下消息。鉴于该程序非常简单,我已经没有什么想法了-有什么建议吗?/Library/Ruby/Gems/1.8/gems/whois-2.0.2/lib/whois/server/adapters/base.
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
我正在尝试编写一个将文件上传到AWS并公开该文件的Ruby脚本。我做了以下事情:s3=Aws::S3::Resource.new(credentials:Aws::Credentials.new(KEY,SECRET),region:'us-west-2')obj=s3.bucket('stg-db').object('key')obj.upload_file(filename)这似乎工作正常,除了该文件不是公开可用的,而且我无法获得它的公共(public)URL。但是当我登录到S3时,我可以正常查看我的文件。为了使其公开可用,我将最后一行更改为obj.upload_file(file
下面的代码在我第一次运行它时就可以正常工作:require'rubygems'require'spreadsheet'book=Spreadsheet.open'/Users/me/myruby/Mywks.xls'sheet=book.worksheet0row=sheet.row(1)putsrow[1]book.write'/Users/me/myruby/Mywks.xls'当我再次运行它时,我会收到更多消息,例如:/Library/Ruby/Gems/1.8/gems/spreadsheet-0.6.5.9/lib/spreadsheet/excel/reader.rb:11
我正在使用Postgres.app在OSX(10.8.3)上。我已经修改了我的PATH,以便应用程序的bin文件夹位于所有其他文件夹之前。Rammy:~phrogz$whichpg_config/Applications/Postgres.app/Contents/MacOS/bin/pg_config我已经安装了rvm并且可以毫无错误地安装pggem,但是当我需要它时我得到一个错误:Rammy:~phrogz$gem-v1.8.25Rammy:~phrogz$geminstallpgFetching:pg-0.15.1.gem(100%)Buildingnativeextension
我最近对我的计算机(OS-MacOSX10.6.8)进行了删除,并且我正在重新安装我所有的开发工具。我再次安装了RVM;但是,它不会让我安装Ruby1.9.3。到目前为止我已经尝试过:rvminstall1.9.3rvm安装1.9.3-p194rvm安装1.9.3-p448rvminstall1.9.3--with-gcc=clang所有返回相同的命令行错误:Searchingforbinaryrubies,thismighttakesometime.Nobinaryrubiesavailablefor:osx/10.6/x86_64/ruby-1.9.3-p448.Continuin
我正在尝试为我的iOS应用程序设置cocoapods但是当我执行命令时:sudogemupdate--system我收到错误消息:当前已安装最新版本。中止。当我进入cocoapods的下一步时:sudogeminstallcocoapods我在MacOS10.8.5上遇到错误:ERROR:Errorinstallingcocoapods:cocoapods-trunkrequiresRubyversion>=2.0.0.我在MacOS10.9.4上尝试了同样的操作,但出现错误:ERROR:Couldnotfindavalidgem'cocoapods'(>=0),hereiswhy:U
我刚刚安装了Sphinx(发行版:archlinux)并下载了源代码。然后我为Rails安装了“ThinkingSphinx”插件。我关注了officialpagesetup和thisScreencastfromRyanBates,但是当我尝试为模型建立索引时,出现了这个错误:$rakethinking_sphinx:index(in/home/benoror/Dropbox/Proyectos/cotizahoy)Sphinxcannotbefoundonyoursystem.Youmayneedtoconfigurethefollowingsettingsinyourconfig/
我试图在我的网站上实现使用Facebook登录功能,但在尝试从Facebook取回访问token时遇到障碍。这是我的代码:ifparams[:error_reason]=="user_denied"thenflash[:error]="TologinwithFacebook,youmustclick'Allow'toletthesiteaccessyourinformation"redirect_to:loginelsifparams[:code]thentoken_uri=URI.parse("https://graph.facebook.com/oauth/access_token
一段时间以来,我一直在使用open_uri下拉ftp路径作为数据源,但突然发现我几乎连续不断地收到“530抱歉,允许的最大客户端数(95)已经连接。”我不确定我的代码是否有问题,或者是否是其他人在访问服务器,不幸的是,我无法真正确定谁有问题。本质上,我正在读取FTPURI:defself.read_uri(uri)beginuri=open(uri).readuri=="Error"?nil:urirescueOpenURI::HTTPErrornilendend我猜我需要在这里添加一些额外的错误处理代码...我想确保我采取一切预防措施来关闭所有连接,这样我的连接就不是问题所在,但是我