1. Memoization ile Hızlı Fonksiyon Çağrıları
function memoize(fn) {
const cache = {};
return function(...args) {
const key = JSON.stringify(args);
if (cache[key]) {
return cache[key];
}
const result = fn(...args);
cache[key] = result;
return result;
};
}
Örnek: Fibonacci hesaplamaları gibi büyük hesaplamalar yapıyorsanız, memoization bu tür işlemleri hızlandırabilir. Hesaplanan sonuçları sakladığınızda, aynı sonuçları tekrar hesaplamak zorunda kalmazsınız.
2. Asenkron Kodlama: `async` ve `await` Kullanımı
async function fetchData() {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
return data;
}
Not: Asenkron kod, işlemleri paralel olarak gerçekleştirmenize olanak tanır. Bu da özellikle I/O işlemleri için önemlidir.
3. Web Workers ile Paralel İşlem
const worker = new Worker('worker.js');
worker.postMessage('start');
// worker.js dosyası içinde
onmessage = function(event) {
// ağır işlem
postMessage('işlem tamam');
};
Örnek Kullanım: Görsel işleme veya büyük veri setleri üzerinde hesaplamalar yapıyorsanız, Web Workers bu tür işlemleri ana iş parçacığından ayırarak performans iyileştirmesi sağlar.
4. Event Delegation ile DOM Manipülasyonu
document.querySelector('#parent').addEventListener('click', function(event) {
if (event.target && event.target.matches('button.classname')) {
// buttona tıklandığında yapılacak işlemler
}
});
Bu yöntem, özellikle dinamik içerik barındıran uygulamalarda sayfa performansını artırır.
5. Tree Shaking ile Gereksiz Koddan Kurtulmak
import { usefulFunction } from 'library';
Not: Tree shaking, modern JavaScript modüllerini (ES6+) kullanan projelerde oldukça etkilidir. Bu yöntem, yalnızca kullandığınız kodu paketleyerek uygulamanın boyutunu küçültür.
6. Lazy Loading ile Yalnızca İhtiyaç Duyduğunuz Kısımları Yükleyin
Örnek: Sayfa kaydırıldıkça yeni görseller yüklemek, ilk başta yalnızca önemli olan içeriği hızlıca yüklemenizi sağlar.
7. Debouncing ve Throttling ile Olay Yönetimi
function debounce(func, delay) {
let timer;
return function() {
clearTimeout(timer);
timer = setTimeout(func, delay);
};
}
Örnek: Kullanıcı kaydırma işlemi yaparken, her kaydırmada API çağrısı yapılmasını engelleyebilirsiniz.
8. CSS Animasyonlarıyla JavaScript’i Azaltın
@keyframes move {
from { transform: translateX(0); }
to { transform: translateX(100px); }
}
.element {
animation: move 2s ease-in-out;
}
CSS animasyonlarını tercih etmek, JavaScript yükünü azaltarak daha hızlı bir deneyim sağlar.
9. Browser Caching ile Tekrar Yüklemeleri Engelleyin
10. Modern JavaScript Söz Dizimi ve Özelliklerini Kullanın
Sonuç olarak, JavaScript performansını artırmak, yalnızca kullanıcı deneyimini iyileştirmekle kalmaz, aynı zamanda SEO açısından da oldukça faydalıdır. Yavaş yüklenen bir sayfa, ziyaretçi kaybına neden olabilir. Bu yüzden, kodunuzu optimize etmek, hem kullanıcı memnuniyetini hem de arama motoru sıralamanızı iyileştirir.