Können Zirkelverweise auf jq-Objekte Speicherverluste verursachen?
阿神
阿神 2017-05-19 10:47:28
0
1
604

Es ist bekannt, dass der Zirkelverweis des DOM-Objekts im Abschluss zu Speicherlecks in niedrigeren Versionen des IE führt.
Wird der Zirkelverweis des jq-ObjektsSpeicher verursachen?
Zum Beispiel: Verursacht die folgende Funktion einen Speicherverlust?

function text() {
    var $butt = $('#butt');
    $butt.click(function() {
        alert($butt.attr('id'));
    });
}
阿神
阿神

闭关修行中......

Antworte allen(1)
某草草

会的,如果你的这个元素#butt在你执行这个函数后从Document中移除,那么它不会被gc回收,因为还存在一个强引用$butt
使用这种方式引用对象可以减少动态构建jq对象的开销,但是需要在这个dom被销毁的时候手动off掉所有引用,比如你这个$butt销毁后应该销毁你的事件引用。$butt.off()
另一种方式是在你的事件函数中不要使用闭包,而是使用动态构建的方式。比如$(this).html('hahah')

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!