SyntaxStudy
Sign Up
jQuery Advanced 4 min read

Avoiding Memory Leaks

Memory Leaks

Memory leaks in jQuery apps usually come from event handlers not removed, closed-over DOM references, or data stored on removed elements.

Example
// Leak: event handler references outer variable after element removed
function bindHandler(el, data) {
  $(el).on("click", () => process(data)); // data in closure
  // If el removed without .off(), closure prevents GC
}
// Fix: remove handlers before removing elements
$(el).off("click").remove();
// Fix: use delegation so handler lives on stable parent
$(document).on("click", ".btn", handler);
// Clean up on SPA route change
function cleanup() {
  $(window).off("scroll.myns resize.myns");
  $.ajaxSetup({ beforeSend: null });
}
Pro Tip

Use namespaced events (.off("click.myns")) to remove only your handlers without affecting others.