Rumah > hujung hadapan web > tutorial js > Mengoptimumkan Prestasi: Menggunakan Debouncing dan Thottling

Mengoptimumkan Prestasi: Menggunakan Debouncing dan Thottling

Mary-Kate Olsen
Lepaskan: 2025-01-30 00:32:08
asal
561 orang telah melayarinya

Optimizing Performance: Using Debouncing and Throttling

?

mari kita sambungkan! Cari saya di github untuk kemas kini mengenai projek baru.


Pengenalan

Aplikasi web berprestasi tinggi adalah penting dalam persekitaran pembangunan pantas hari ini. Pengendalian acara yang cekap adalah kunci, terutamanya apabila berurusan dengan kandungan dinamik dan interaksi pengguna. Debouncing dan throttling adalah teknik yang kuat yang mengoptimumkan prestasi dengan mengawal kekerapan pelaksanaan pengendali acara. Panduan ini meneroka kaedah ini, menonjolkan perbezaan mereka dan pelaksanaan JavaScript dan React praktikal.


Debouncing dan throttling: perbandingan

kedua -dua keberanian dan pendikit mengawal pelaksanaan fungsi, tetapi aplikasi mereka berbeza.

Debouncing: Melaksanakan fungsi hanya selepas tempoh tidak aktif yang ditentukan. Sesuai untuk senario dengan input berterusan, seperti bar carian atau saiz semula tetingkap. Fikirkannya sebagai menunggu "bunyi" untuk menyelesaikan sebelum bertindak.

Throttling: Melaksanakan fungsi paling banyak sekali dalam selang waktu tertentu, tanpa mengira berapa kali peristiwa itu mencetuskan. Berguna untuk peristiwa frekuensi tinggi seperti pergerakan menatal atau tetikus. Ia memastikan kadar pelaksanaan yang konsisten.


pelaksanaan JavaScript mari kita meneroka contoh praktikal mengenai keberanian dan pendikit di JavaScript biasa.

Debouncing (vanila javascript):

Fungsi carian autocomplete adalah kes penggunaan yang sempurna.

function debounce(func, delay) {
  let timeout;
  return function (...args) {
    clearTimeout(timeout);
    timeout = setTimeout(() => func.apply(this, args), delay);
  };
}

// Example: Debouncing a search input
const searchInput = document.getElementById('search');
const handleSearch = (event) => {
  console.log(`Searching for: ${event.target.value}`);
};

searchInput.addEventListener('input', debounce(handleSearch, 300));
Salin selepas log masuk

Throttling (vanila javascript):

Mengoptimumkan prestasi skrol adalah aplikasi biasa.

function throttle(func, limit) {
  let lastFunc;
  let lastRan;
  return function (...args) {
    const context = this;
    if (!lastRan) {
      func.apply(context, args);
      lastRan = Date.now();
    } else {
      clearTimeout(lastFunc);
      lastFunc = setTimeout(() => {
        if (Date.now() - lastRan >= limit) {
          func.apply(context, args);
          lastRan = Date.now();
        }
      }, limit - (Date.now() - lastRan));
    }
  };
}

// Example: Throttling a scroll event
const handleScroll = () => {
  console.log('Scroll event triggered');
};

window.addEventListener('scroll', throttle(handleScroll, 200));
Salin selepas log masuk

React pelaksanaan

React menawarkan cara yang fleksibel untuk melaksanakan keberanian dan pendikit menggunakan cangkuk. Kami juga boleh memanfaatkan perpustakaan seperti Lodash untuk pelaksanaan yang diperkemas.

Debouncing dalam React:

medan input carian yang dikemukakan.

import React, { useState, useCallback } from 'react';

const DebouncedSearch = () => {
  // ... (State and debounce function remain the same) ...
};
Salin selepas log masuk
Throttling in React:

pengendali acara tatal yang diletakkan.

import React, { useState, useEffect } from 'react';

const ThrottledScroll = () => {
  // ... (State and throttle function remain the same) ...
};
Salin selepas log masuk
Menggunakan lodash:

Lodash memudahkan pelaksanaan. Pasangnya menggunakan . npm install lodash

import { debounce, throttle } from 'lodash';
// ... use debounce and throttle directly ...
Salin selepas log masuk

Aplikasi dunia nyata

Debouncing dan Throttling adalah penting untuk membina aplikasi yang responsif dan cekap.

    Pengoptimuman carian:
  • Debouncing meminimumkan panggilan API dalam ciri carian.
  • tatal lancar:
  • throttling menghalang isu prestasi semasa menatal.
  • Aplikasi yang didorong oleh acara:
  • Kedua-dua teknik meningkatkan pengendalian peristiwa frekuensi tinggi dalam spa dan sistem masa nyata.

Kesimpulan

Debouncing dan throttling adalah penting untuk membuat aplikasi web berprestasi tinggi. Dengan menguruskan kekerapan pelaksanaan acara, teknik ini mengoptimumkan penggunaan sumber dan meningkatkan pengalaman pengguna. Menguasai teknik ini adalah penting untuk mana -mana pemaju web moden.


Meta Description: Meningkatkan prestasi aplikasi web anda dengan debouncing dan throttling. Ketahui Perbezaan, JavaScript dan React Pelaksanaan, dan aplikasi dunia nyata.


tldr: debounce untuk pelaksanaan yang jarang berlaku selepas pecah peristiwa (bar carian); Pendikit untuk pelaksanaan yang konsisten dalam selang (menatal). Gunakan cangkuk reaksi atau lodash untuk pelaksanaan yang mudah. Tingkatkan prestasi dan pengalaman pengguna aplikasi anda!


Kongsi pengalaman anda dengan membantah dan mendekati komen!

Atas ialah kandungan terperinci Mengoptimumkan Prestasi: Menggunakan Debouncing dan Thottling. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan