إطار Next.js

وسوم التخزين المؤقت ومدة التخزين وإعادة التحقق

28 دقيقة الدرس 43 من 80

وسوم التخزين المؤقت ومدة التخزين وإعادة التحقق

هذا الدرس يوسّع مسار Next.js بموضوع متقدم من توثيق Next.js الرسمي. الهدف ليس حفظ خيار أو اسم ملف فقط، بل فهم أثره على العرض والتخزين المؤقت والأمان والنشر.

بعد هذا الدرس ستكون قادراً على تطبيق الموضوع داخل مشروع حقيقي، اختيار حدوده الصحيحة، وشرحه كقرار هندسي قابل للمراجعة.

المفاهيم الأساسية

  • تجميع cacheTag
  • ملفات cacheLife
  • revalidateTag
  • revalidatePath
  • تدفقات النشر

مثال عملي

// app/lib/posts.ts import { cacheLife, cacheTag } from 'next/cache' export async function getPost(slug: string) { 'use cache' cacheLife('days') cacheTag('posts') cacheTag('post-' + slug) return db.post.findUnique({ where: { slug } }) } // app/admin/posts/actions.ts 'use server' import { revalidateTag } from 'next/cache' export async function publishPost(slug: string) { await db.post.update({ where: { slug }, data: { published: true } }) revalidateTag('posts') revalidateTag('post-' + slug) }
يرتبط هذا الدرس بموضوعات من توثيق Next.js الرسمي: Revalidating, cacheTag, cacheLife, revalidateTag, and revalidatePath docs.

لماذا يهم؟

عند بناء تطبيقات إنتاجية، يؤثر هذا الموضوع على سرعة الصفحة، ثبات البيانات، وضوح الصلاحيات، وسهولة التشغيل بعد النشر.

خطوات العمل

  • حدد هل البيانات عامة أم خاصة بالمستخدم.
  • اختر أقل جزء من الشجرة يحتاج هذا السلوك.
  • اربط المثال بمسار حقيقي واكتب فحصاً بسيطاً له.
  • وثّق أثر القرار على التخزين المؤقت والنشر.

تطبيق عملي

طبّق هذا الموضوع في ميزة صغيرة ثم راجع سلوكها محلياً وبعد البناء. ركّز على الحدود، التخزين المؤقت، الأخطاء، وتجربة المستخدم.

لا تطبّق هذا النمط على كامل التطبيق دون سبب واضح. ابدأ بحد صغير، اختبر النتيجة، ثم وسّع الاستخدام عند الحاجة.

الخلاصة

احكم على نجاح التطبيق من خلال وضوح القرار، صحة السلوك بعد البناء، وسهولة تتبعه في الإنتاج.