تواصل معنا
Webflow Premium Partner إيهاب فايز
العودة لأدوات AI Coding
الواجهات والتصميم

Service Worker Caching

نفّذ استراتيجيات تخزين مؤقت متقدمة مع Service Workers لدعم العمل بدون إنترنت وتحميل أسرع ومزامنة في الخلفية.

Claude Code Cursor Copilot Windsurf

نظرة عامة

يعمل Service Workers كوكيل شبكة قابل للبرمجة بين تطبيق الويب والخادم، مما يتيح العمل بدون إنترنت والمعالجة في الخلفية واستراتيجيات التخزين المؤقت المتطورة. يمكن لعملاء الذكاء الاصطناعي إنشاء كود Service Worker باستخدام Workbox أو واجهات برمجة التطبيقات العادية لتنفيذ استراتيجية التخزين المؤقت المناسبة لكل نوع من الموارد.

الموارد المختلفة تحتاج استراتيجيات مختلفة: Cache First للأصول الثابتة (CSS، JS، الصور)، Network First لاستجابات API، Stale While Revalidate للمحتوى شبه الديناميكي، و Network Only للبيانات الفورية. يمكن لعميل الذكاء الاصطناعي تنفيذ هذه الاستراتيجيات، وتكوين انتهاء صلاحية التخزين المؤقت، والتعامل مع إصدار التخزين المؤقت، وإعداد التخزين المؤقت المسبق للموارد الحرجة.

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

لمن هذه الأداة؟

  • مطورين بينفذوا تطبيقات ويب offline-first
  • فرق بتحسن أوقات التحميل مع استراتيجيات تخزين مؤقت ذكية
  • مهندسين بيبنوا تطبيقات لمستخدمين مع اتصال متقطع
  • مطورين بينفذوا مزامنة في الخلفية لإرسال النماذج بدون إنترنت

التثبيت

إعداد Claude Code
npm install workbox-core workbox-routing workbox-strategies workbox-precaching

الإعدادات

// sw.js with Workbox
import { precacheAndRoute } from "workbox-precaching";
import { registerRoute } from "workbox-routing";
import { CacheFirst, NetworkFirst } from "workbox-strategies";
import { ExpirationPlugin } from "workbox-expiration";

precacheAndRoute(self.__WB_MANIFEST);

registerRoute(
  ({ request }) => request.destination === "image",
  new CacheFirst({ cacheName: "images", plugins: [
    new ExpirationPlugin({ maxEntries: 60, maxAgeSeconds: 30 * 24 * 60 * 60 }),
  ]})
);