Caching Selections
Caching Selections: free step-by-step lesson with examples, common mistakes, and interview tips — part of jQuery Tutorial on Toolliyo Academy.
On this page
jQuery Tutorial · Lesson 9 of 100
Caching Selections
Setup & DOM → Events Effects AJAX → Perf & Integrate → Ship & Projects
Setup & DOM · 1 — Select · ~6 min · Setup and Selectors
What is this?
Store a jQuery collection in a variable (often named $el) when you reuse it. Re-querying the same selector in a loop wastes work and risks drift.
Why should you care?
Busy QueryVerse dashboards touch the same panels many times per interaction — cache once, update often.
See it live — copy this example
Examples include the jQuery 3.7 CDN. Paste into an HTML file or use Run Example to preview.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>QueryVerse</title>
<style>
body { font-family: system-ui, sans-serif; margin: 1.25rem; }
.box { padding: .75rem; border: 1px solid #ccc; border-radius: 8px; margin: .5rem 0; }
.muted { color: #666; }
button { margin-right: .35rem; margin-top: .35rem; }
input, select, textarea { margin: .25rem 0; }
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid #ddd; padding: .4rem .55rem; text-align: left; }
.hidden { display: none; }
.row-odd { background: #f7f7f7; }
.active { font-weight: 700; }
.toast { background: #111; color: #fff; padding: .5rem .75rem; border-radius: 6px; }
</style>
</head>
<body>
<ul id="feeds" class="box">
<li>NIFTY pulse</li><li>Orders</li><li>Alerts</li>
</ul>
<button type="button" id="bump">Bump all labels</button>
<p id="out" class="muted"></p>
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script>
$(function () {
var $feeds = $('#feeds');
var $items = $feeds.find('li');
$('#bump').on('click', function () {
$items.each(function (i) {
var $li = $(this);
$li.text($li.text().replace(/ \(x\d+\)$/, '') + ' (x' + (i + 1) + ')');
});
$('#out').text('Cached li count=' + $items.length);
});
});
</script>
</body>
</html>
Run Example »
Edit the code below and click Run to see the result in Toolliyo’s live editor.
What happened?
- Cache stable parents and child collections after ready.
- Re-find only when the DOM structure changes (after append/remove).
- Prefixing with $ is a team convention, not a language rule.
Practice next
- Click Bump twice and confirm texts update.
- Move var $items inside the click and compare.
- After appending a new li, re-run find to refresh cache.
- Cache $("#out") and write timing logs to it.
- Compare performance mentally for 500 rows.
Remember
Reuse selections via variables. Refresh caches after structural DOM changes. $ prefix signals a jQuery object.
Market ticker panel
A Zerodha-like internal QueryVerse ticker rewrites dozens of labels on each poll.
Outcome: Cached $items avoid re-selecting the list on every bump.
Interview prep for this lesson
Practice these questions aloud after reading—each links to a full structured answer.
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!