0Pricing
jQuery Academy · Pelajaran

Memanfaatkan Penyimpanan Tembolok dan Objek Deferred

Gunakan penyimpanan tembolok pemilih untuk menghindari pencarian DOM berulang dan pahami objek Deferred jQuery untuk mengelola operasi asinkron secara lebih efektif, sekaligus meningkatkan keterbacaan dan kinerja kode.

Memanfaatkan Penyimpanan Tembolok dan Objek Deferred adalah pelajaran jQuery Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar jQuery Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus jQuery Academy mencakup 3 pelajaran total.

Tingkatkan Kinerja dengan Caching & Deferred

Selamat datang! Dalam pelajaran ini, kita akan membahas dua teknik ampuh untuk membuat aplikasi jQuery Anda lebih cepat dan efisien: caching pemilih dan objek Deferred.

Metode-metode ini membantu Anda mengurangi pekerjaan berulang dan mengelola operasi asinkron yang kompleks dengan mudah.

Mengapa Caching Pemilih Penting

Setiap kali Anda menggunakan pemilih jQuery seperti $("#myElement") atau $(".item"), jQuery harus menelusuri Document Object Model (DOM) untuk menemukan elemen yang cocok.

  • Penelusuran ini dapat lambat, terutama untuk pemilih yang kompleks atau struktur DOM yang besar.
  • Pencarian berulang untuk elemen yang sama membuang daya pemrosesan.

Caching membantu kita menghindari hal ini!

Simpan Hasil Pemilihan Anda

Daripada mencari di DOM berkali-kali, simpan hasil pemilihan jQuery dalam sebuah variabel. Variabel ini kemudian menyimpan referensi ke objek jQuery.

Coba jalankan contoh ini untuk melihat cara kita melakukan caching pada hasil pemilihan:

// Imagine this is in your HTML
// <div id="myDiv">Hello</div>

// Simulate jQuery selecting an element
// In a real browser, this would return a jQuery object
const $myElement = {
  id: "myDiv",
  text: "Hello",
  // Simulate jQuery methods
  css: function(prop, value) {
    console.log(`Setting ${prop} to ${value} on #${this.id}`);
  },
  addClass: function(cls) {
    console.log(`Adding class "${cls}" to #${this.id}`);
  }
};

console.log("--- Without Caching (simulated) ---");
// This would ideally re-query the DOM
$myElement.css("color", "blue"); // Simulates $("#myDiv").css(...)
$myElement.addClass("highlight"); // Simulates $("#myDiv").addClass(...)

console.log("\n--- With Caching ---");
// We already have $myElement, so no re-query
$myElement.css("font-weight", "bold");
$myElement.addClass("active");

Perantaian untuk Efisiensi

Perantaian metode jQuery sudah merupakan salah satu bentuk efisiensi karena beroperasi pada kumpulan elemen yang sama-sama dipilih.

Namun, caching sangat penting ketika Anda perlu melakukan operasi pada elemen yang sama di berbagai bagian kode atau di berbagai penangan peristiwa.

// Chaining is good for sequential ops
$("#myElement")
  .addClass("active")
  .css("color", "blue")
  .fadeIn();

// Caching is better for repeated, non-sequential ops
const $cachedElement = $("#myElement");
// Later in code...
$cachedElement.trigger("click");
// Even later...
$cachedElement.removeClass("active");

Menggunakan Kembali Hasil Pemilihan

Bayangkan skenario saat Anda sering berinteraksi dengan sekelompok elemen. Melakukan caching pada hasil pemilihan awal mencegah kueri DOM berulang.

Hal ini sangat berguna di dalam perulangan, penangan peristiwa, atau fungsi yang beroperasi pada kumpulan elemen yang sama.

// Imagine HTML: <li class="item">1</li> <li class="item">2</li>
// <li class="item">3</li> <button id="toggleBtn">Toggle</button>

// Simulate jQuery context
const $items = [{
  text: "Item 1"
}, {
  text: "Item 2"
}];
const $toggleButton = {
  text: "Toggle Button"
};

console.log("Cached items count:", $items.length);
console.log("Cached button text:", $toggleButton.text);

// Later, you might need them again, without re-querying
// e.g., in an event handler
function handleToggle() {
  // Use $items and $toggleButton directly
  console.log("Toggle button clicked! Working with cached items.");
}

// Call the function
handleToggle();

Mengelola Operasi Asinkron

Objek Deferred dalam jQuery menyediakan cara untuk mendaftarkan beberapa fungsi panggilan balik ke dalam antrean, memanggil antrean fungsi panggilan balik, serta meneruskan status keberhasilan atau kegagalan dari operasi sinkron maupun asinkron.

  • Anggaplah objek ini sebagai promise untuk hasil di masa mendatang.
  • Objek ini membantu mengatur kode yang menangani operasi seperti permintaan AJAX, animasi, atau penghitung waktu.

Membuat Deferred Baru

Anda dapat membuat objek Deferred baru menggunakan $.Deferred(). Objek ini memiliki metode untuk mengendalikan statusnya: resolve() untuk keberhasilan dan reject() untuk kegagalan.

Mari lihat cara menyiapkan deferred dasar yang diselesaikan setelah penundaan.

function doSomethingAsync() {
  const dfd = $.Deferred(); // Create a new Deferred

  setTimeout(function() {
    const success = Math.random() > 0.5; // Simulate success/failure
    if (success) {
      dfd.resolve("Operation successful!"); // Resolve on success
    } else {
      dfd.reject("Operation failed!"); // Reject on failure
    }
  }, 1000); // Simulate 1-second delay

  return dfd.promise(); // Return the Promise part
}

// This code will run when the scene loads
// We'll attach handlers in the next scene
console.log("Deferred created. Waiting for resolution...");

Menggunakan .done() dan .fail()

Setelah memiliki objek Deferred (atau promise-nya), Anda dapat memasang fungsi panggilan balik menggunakan .done() untuk keberhasilan dan .fail() untuk menangani error.

Panggilan balik .always() dijalankan terlepas dari keberhasilan atau kegagalan.

function doSomethingAsync() {
  const dfd = $.Deferred();
  setTimeout(function() {
    const success = true; // For this example, let's ensure success
    if (success) {
      dfd.resolve("Data loaded!");
    } else {
      dfd.reject("Network error!");
    }
  }, 500);
  return dfd.promise();
}

const myPromise = doSomethingAsync();

myPromise.done(function(message) {
  console.log("SUCCESS:", message);
});

myPromise.fail(function(errorMessage) {
  console.log("FAILED:", errorMessage);
});

myPromise.always(function() {
  console.log("Operation complete (done or failed).");
});

console.log("Initiating async operation...");

Mengubah Hasil dengan .then()

Sementara .done() dan .fail() digunakan untuk penanganan akhir, .then() lebih serbaguna. Metode ini dapat mengubah nilai yang diselesaikan atau bahkan mengembalikan promise baru, sehingga memungkinkan pemrosesan berurutan.

Anda dapat menggunakan .then() untuk memproses hasil sebelum meneruskannya.

function fetchData() {
  const dfd = $.Deferred();
  setTimeout(() => {
    console.log("Data fetched.");
    dfd.resolve({
      id: 1,
      name: "Widget"
    });
  }, 500);
  return dfd.promise();
}

fetchData()
  .then(function(data) {
    console.log("Processing fetched data:", data);
    return data.name.toUpperCase(); // Transform the data
  })
  .then(function(processedName) {
    console.log("Transformed name:", processedName);
    // This second .then() receives the result of the first .then()
  })
  .fail(function(error) {
    console.error("Error:", error);
  });

console.log("Starting data fetch and transformation...");

Kuis Caching & Deferred

Siap menghadapi tantangan singkat? Uji pemahaman Anda tentang caching pemilih dan objek Deferred.

Rangkuman: jQuery yang Lebih Cepat dan Cerdas

Kerja bagus! Anda telah mempelajari cara meningkatkan kinerja dan pengaturan kode aplikasi jQuery secara signifikan:

  • Caching Pemilih: Simpan hasil pemilihan jQuery dalam variabel untuk menghindari pencarian DOM yang mahal dan berulang.
  • Objek Deferred: Gunakan $.Deferred(), .resolve(), .reject(), .done(), .fail(), dan .then() untuk mengelola operasi asinkron yang kompleks dengan rapi dan efisien.

Terapkan teknik-teknik ini untuk membangun aplikasi web yang lebih andal dan berkinerja tinggi!

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Memanfaatkan Penyimpanan Tembolok dan Objek Deferred” gratis?

Ya — teks lengkap “Memanfaatkan Penyimpanan Tembolok dan Objek Deferred” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus jQuery Academy, upgrade ke CoddyKit PRO. Kursus jQuery Academy mencakup 3 pelajaran total.

Apa yang akan aku pelajari di “Memanfaatkan Penyimpanan Tembolok dan Objek Deferred”?

Gunakan penyimpanan tembolok pemilih untuk menghindari pencarian DOM berulang dan pahami objek Deferred jQuery untuk mengelola operasi asinkron secara lebih efektif, sekaligus meningkatkan keterbacaa… Kamu berlatih jQuery Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai jQuery Academy?

Tidak diperlukan pengalaman sebelumnya. jQuery Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 3.

Berapa lama pelajaran “Memanfaatkan Penyimpanan Tembolok dan Objek Deferred” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran jQuery Academy ini?

Ya. Setiap pelajaran jQuery Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mengoptimalkan Operasi Manipulasi DOM
  2. Penanganan Peristiwa dan Throttling yang Efisien
  3. Memanfaatkan Penyimpanan Tembolok dan Objek Deferred
← Kembali ke jQuery Academy