Rumah  >  Soal Jawab  >  teks badan

Bolehkah rujukan pekeliling objek jq menyebabkan kebocoran memori?

Adalah diketahui bahawa rujukan bulat objek DOM dalam penutupan akan menyebabkan kebocoran memori dalam versi IE yang lebih rendah
Jadi, adakah rujukan bulat jq objekmemimpin memori?
Contohnya: Adakah fungsi berikut akan menyebabkan kebocoran memori?

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

membalas semua(1)saya akan balas

  • 某草草

    某草草2017-05-19 10:49:28

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

    balas
    0
  • Batalbalas