这被认为是内存泄漏吗?如果是这样......如何解决?

Mon*_*tee 0 javascript jquery

数以百万计的div与同类.clickable

用户变成了一个野蛮人,点击了每一个div

这被认为是内存泄漏......

如果是这样…

我需要注入什么代码来阻止它

var body = $('body');
var clickme = '.clickable';

body.find(clickme).click(function() {
  var $this = $(this);
  
  $this.addClass($this.data('add-class'));
});
Run Code Online (Sandbox Code Playgroud)
/* whatever the class click-number css is suppose to be*/
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-add-class="click1" class="clickable"></div>
<div data-add-class="click2" class="clickable"></div>
<div data-add-class="click3" class="clickable"></div>
…
…
<div data-add-class="click500000" class="clickable"></div>
<div data-add-class="click500001" class="clickable"></div>
<div data-add-class="click500002" class="clickable"></div>
<div data-add-class="click500003" class="clickable"></div>
…
…
<div data-add-class="click1000000" class="clickable"></div>
<div data-add-class="click1000001" class="clickable"></div>
<div data-add-class="click1000002" class="clickable"></div>
<div data-add-class="click1000003" class="clickable"></div>
Run Code Online (Sandbox Code Playgroud)

Ama*_*dan 5

这不是内存泄漏,但它是一种内存浪费.用户点击无关紧要; 将一个点击监听器附加到每个对象的事实使它成为浪费.相反,请监听祖先元素(或者document,如果您无法识别单个共同祖先):

$(document).on('click', '.clickable', function(evt) {
  ...
});
Run Code Online (Sandbox Code Playgroud)

顺便说一句,内存泄漏将是每次用户点击时,你分配更多的内存,你以后不会释放.谢天谢地,你不这样做.