ઑન-ડિમાન્ડ રિવેલીડેશન તમને કેશ્ડ/સ્ટેટિક પેજોને બિલકુલ જ્યારે ડેટા બદલાય ત્યારે અમાન્ય કરવા દે છે — સમય-આધારિત અંતરાલ માટે રાહ જોવાને બદલે. તે સમય-આધારિત ISR (revalidate: N) નો ચોક્કસ પૂરક છે.
સમય-આધારિત વર્સ ઑન-ડિમાન્ડ
revalidate = ;
ઑન-ડિમાન્ડ રિવેલીડેશન તમને કેશ્ડ/સ્ટેટિક પેજોને બિલકુલ જ્યારે ડેટા બદલાય ત્યારે અમાન્ય કરવા દે છે — સમય-આધારિત અંતરાલ માટે રાહ જોવાને બદલે. તે સમય-આધારિત ISR (revalidate: N) નો ચોક્કસ પૂરક છે.
revalidate = ;
સમય-આધારિત ISR સરળ છે પરંતુ અપૂર્ણ છે: ખૂબ ટૂંકો = બિનજરૂરી પુનર્નિર્માણ; ખૂબ લાંબો = જૂનો કન્ટેન્ટ. ઑન-ડિમાન્ડ આને ઠીક કરે છે જ્યારે કોઈ બદલાવ ખરેખર થાય ત્યારે તમારા પોતાના કોડમાંથી રિવેલીડેશન ટ્રિગર કરીને.
import { revalidatePath, revalidateTag } from "next/cache";
// 1. Tag your fetches, then invalidate by tag
await fetch("https://api/posts", { next: { tags: ["posts"] } });
revalidateTag("posts"); // refresh EVERY page/fetch tagged "posts"
// 2. Or invalidate a specific path
revalidatePath("/blog/my-post");
// app/api/revalidate/route.ts — called by your CMS when an editor publishes
import { revalidateTag } from "next/cache";
import { NextRequest, NextResponse } from "next/server";
export async function POST(req: NextRequest) {
const secret = req.nextUrl.searchParams.get("secret");
if (secret !== process.env.REVALIDATE_SECRET) { // verify it's really your CMS
return NextResponse.json({ ok: false }, { status: 401 });
}
revalidateTag("posts"); // rebuild affected pages now
return NextResponse.json({ revalidated: true });
}
પ્રવાહ: સંપાદક CMS માં પ્રકાશિત કરે → CMS તમારા વેબહુકને કૉલ કરે → revalidateTag("posts") કેશને અમાન્ય કરે → આગલો આગંતુક તાજા પુનર્નિર્મિત સ્ટેટિક HTML મેળવે છે. પેજ સ્ટેટિક-ઝડપી રહે છે અને પ્રકાશનમાં તરત જ અપડેટ થાય છે.
"use server";
export async function createPost(data) {
await db.post.create({ data });
revalidateTag("posts"); // user sees their new post immediately
}
ઑન-ડિમાન્ડ રિવેલીડેશન તમને પવિત્ર કોશ આપે છે: વાસ્તવિક સમયીય તાજેપણ સાથે સ્ટેટિક પર્ફોર્મન્સ.
રિવેલીડેશન અંતરાલનો અનુમાન લગાવવાને બદલે, તમે કન્ટેન્ટ બદલાય ત્યારે ચોક્કસપણે અમાન્ય કરો — વેબહુક (CMS પ્રકાશન) અથવા સર્વર એક્શન મ્યુટેશનની પછી — revalidateTag/revalidatePath નો ઉપયોગ કરીને.
તે જૂનો કન્ટેન્ટ અને વ્યર્થ ઓવર-રિજનરેશન બંનેને દૂર કરે છે, જે ISRને કન્ટેન્ટ માટે વ્યવહારુ બનાવે છે જે અણધોતીરીતે અપડેટ થાય છે.