Frontend və server arasında ötürülən məlumatların miqdarını azaltmaq üçün hansı optimallaşdırma üsulları mövcuddur?
sobes.tech Süni İntellekt
AI-dan cavab
-
Məlumatların sıxılması: Məlumatların göndərilməsindən əvvəl serverdə gzip, Brotli kimi sıxışdırma alqoritmlərindən istifadə.
-
Minifikasiya və obfuskasiya: Lazımsız simvolların (boşluqlar, sətir sonları) silinməsi və JS, CSS, HTML fayllarında dəyişən adlarının yenidən təyin edilməsi.
-
Lazımsız yükləmə (Lazy Loading): Resursların (şəkillər, komponentlər, modullar) yalnız lazım olduqda yüklənməsi, səhifənin ilkin yüklənməsində deyil.
-
Tree Shaking (istifadə olunmayan kodun çıxarılması): Yığma alətləri (Webpack, Rollup) asılılıqları analiz edə və istifadə olunmayan kodu çıxara bilər.
-
Şəkil optimallaşdırması:
- Müasir formatların istifadəsi (WebP, AVIF).
- Zərərli və ya zərərsiz sıxışdırma.
- Adaptiv şəkillər (
<picture>və yasrcset). - Şəkillərin lazy yüklənməsi (
loading="lazy").
-
Keşləmə:
- Brauzer tərəfində keşləmə (HTTP keş başlıqları).
- API məlumatlarının önbelleğe alınması (məsələn, vəziyyət idarəetmə kitabxanaları ilə).
-
Səhifə bölmələri və sonsuz sürüşdürmə: Bütün məlumatların tam yüklənməsi yerinə, məlumatların hissə-hissə yüklənməsi.
-
GraphQL REST yerinə: Müştərinin yalnız lazım olan sahələri soruşmasına imkan verir, artıq məlumatların qarşısını alır.
-
Məlumat formatı: Protocol Buffers və ya MessagePack kimi daha sıxılmış formatların istifadəsi, XML və ya artıq JSON yerinə.
-
HTTP sorğularının sayını azaltmaq: Faylların birləşdirilməsi (CSS, JS), CSS sprite-lərindən istifadə.
-
Server tərəfi render (SSR) / Statik saytların yaradılması (SSG): İlk göstərim üçün lazım olan JS miqdarını azaltmaq üçün serverdə render etmək.
-
Sorğu sıxışdırması (Request Compression): Nadir istifadə olunur, amma POST sorğularının gövdəsini sıxışdırmaq mümkündür.
// React-də React.lazy və Suspense istifadə edərək komponentin tənbəl yüklənməsi nümunəsi
import React, { Suspense } from 'react';
const LazyComponent = React.lazy(() => import('./LazyComponent'));
function App() {
return (
<div>
<Suspense fallback={<div>Yüklənir...</div>}>
<LazyComponent />
</Suspense>
</div>
);
}
<!-- Adaptiv şəkil nümunəsi -->
<picture>
<source srcset="image.webp" type="image/webp">
<img src="image.jpg" alt="Şəkil təsviri">
</picture>