F
Fərid HəsənovMüəllif
farid.hasanov@example.comNext.js App Router-də Keşləmə (Caching) Arxitekturası
Request memoization, Data Cache, Full Route Cache və Router Cache mexanizmlərinin dərin mühəndislik analizi.
Next.js App Router-ə keçən bir çox tərtibatçının qarşılaşdığı ən böyük sual: "Mən məlumatı dəyişdim, bəs niyə səhifədə köhnə məlumat görünür?". Cavab Next.js-in çoxsəviyyəli keşləmə arxitekturasındadır.
Bu arxitektura düzgün başa düşüldükdə saytınızı ildırım sürətinə çatdırır, lakin səhv istifadə edildikdə köhnəlmiş məlumatların ekranda ilişib qalmasına səbəb olur.
📌 1. Dörd Keş Səviyyəsi:
1. Request Memoization (React Server):
Eyni render dövründə eyni URL-ə və ya funksiyaya edilən çağırışlar yalnız 1 dəfə icra olunur. Bizim 'lib/auth.ts' və 'lib/posts.ts' daxilindəki 'cache()' funksiyası məhz bu prinsipi təmin edir.
2. Data Cache (Next.js Server):
'fetch()' sorğularının nəticələri fərqli istifadəçilər və sorğular arasında saxlanılır. 'revalidate: 60' kimi ayarlarla arxa planda yenilənir (ISR).
3. Full Route Cache (Server):
Statik səhifələrin HTML və RSC payload-u build zamanı tamamilə yaddaşa yazılır. İstifadəçi gəldikdə server sıfırdan heç nə hesablamır, hazır faylı ötürür.
4. Router Cache (Brauzer / Müştəri):
İstifadəçi saytda gəzdikcə ziyarət etdiyi səhifələr brauzerin müvəqqəti yaddaşında saxlanılır. Geri və irəli düymələrinə basdıqda səhifə anında açılır.
📌 2. Keşi Necə Təmizləməli?
Məlumat bazada dəyişdikdə köhnə keşi ləğv etmək üçün iki əsas funksiya var:
- 'revalidatePath("/blog/[slug]", "page")': Konkret bir səhifənin keşini silir.
- 'revalidatePath("/", "layout")': Bütün saytın layout səviyyəsindəki keşini təzələyir. Məsələn, yeni post paylaşıldıqda ana səhifənin dərhal yenilənməsi üçün 'revalidatePath("/", "layout")' çağırılır.
←Bütün yazılara qayıtKateqoriya: Next.js