On-demand revalidation yana ba ka bugi cached/static shafuka jiya lokacin da bayyanar ta canja — maimakon jira ga lokaci da ke da tsari. Shine daidai gida ga lokaci-da ke tsari ISR (revalidate: N).
Lokaci-da ke tsari da on-demand
revalidate = ;
On-demand revalidation yana ba ka bugi cached/static shafuka jiya lokacin da bayyanar ta canja — maimakon jira ga lokaci da ke da tsari. Shine daidai gida ga lokaci-da ke tsari ISR (revalidate: N).
revalidate = ;
Lokaci-da ke tsari ISR shi ne mai sauƙi amma ba shi cikakke ba: gajere = jiya ba daidai ba; dogon lokaci = tsohuwar abin. On-demand ya gyara haka ta hanyar kitsa revalidation daga naka alama lokacin da canja ya auka.
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 });
}
Raguwa: editon na CMS ya buga → CMS ta kira webhook din → revalidateTag("posts") ya bugi cache → bisitoci na gida ya karbi freshly regenerated static HTML. Shafuka suna nan tsattsatse-sauri da update nan-nan a bugu.
"use server";
export async function createPost(data) {
await db.post.create({ data });
revalidateTag("posts"); // user sees their new post immediately
}
On-demand revalidation yana ba ka abin da dake zama mafi girma: sauri na static tare da freshness na tunau.
Instead of tunanin revalidation interval, ka bugi daidai lokacin da abun ya canja — ta hanyar webhooks (CMS bugu) ko bayan Server Action mutations — ta amfani da revalidateTag/revalidatePath.
Yana cire duka tsohuwar abin da kuma rashin amfani da over-regeneration, yana sa ISR kasancewa mai amfani ga abin da ke canja ba tare da kirki ba.