از پنجره به حافظه پنهان دسترسی پیدا کنید

با تمام این کارهایی که خارج از window انجام داده‌ایم، ممکن است فکر کنید که نمونه‌های Cache فقط در محدوده Service Worker قابل دسترسی هستند. واقعیت این است که می‌توانید به نمونه‌های Cache هم در محدوده سرویس‌کار و هم در کد سنتی برنامه وب خود که در window اجرا می‌شود دسترسی داشته باشید. این کار باعث می‌شود تا کاربر بتواند مستقیماً با حافظه پنهان سرویس‌دهنده تعامل داشته باشد یا رابط کاربر را بر اساس وضعیت حافظه پنهان به‌روزرسانی کند.

یکی از موارد استفاده بالقوه ارائه ویژگی «ذخیره برای آفلاین» برای صفحاتی است که کاربر ممکن است بخواهد بعداً بخواند، اما بدانید که ممکن است در آن زمان آفلاین باشند. تعبیه Glitch زیر نحوه انجام این کار را با Workbox نشان می دهد.

در جاسازی بالا، می‌توانید ببینید که اسکریپت app.js با کلیک روی دکمه «ذخیره برای آفلاین» از بافت window در حافظه پنهان آفلاین می‌نویسد. در سرویس‌کار، دارایی‌های ثابت صفحه برای دسترسی آفلاین از پیش ذخیره می‌شوند. یک استراتژی NetworkOnly با یک کنترل کننده ویژه استفاده می شود که دسترسی آفلاین را برای صفحات ذخیره شده در حافظه پنهان مدیریت می کند و به یک NavigationRoute ارسال می شود.

برای آزمایش عملکرد در جاسازی Glitch، موارد زیر را انجام دهید:

  1. یک پنجره مرورگر جدید باز کنید و به https://save-for-offline-test.glitch.me/ بروید
  2. روی دکمه ای که می خواند افزودن به لیست خواندن آفلاین را کلیک کنید.
  3. ابزارهای توسعه دهنده مرورگر خود را در فایرفاکس یا کروم باز کنید. اگر از Chrome استفاده می کنید، به پنل برنامه بروید. در فایرفاکس، به پنل ذخیره سازی بروید.
  4. در ابزارهای توسعه‌دهنده هر یک از مرورگرها، یک آیتم حافظه پنهان را در سمت چپ می‌بینید. برای گسترش آن کلیک کنید. در ورودی حافظه نهان آفلاین ، باید URL صفحه ای را که به تازگی اضافه کرده اید در قسمت سمت راست ببینید.
  5. روی پیوند هر صفحه دیگری در پایین صفحه کلیک کنید.
  6. برای شبیه سازی اتصال آفلاین، حالت آفلاین را در هر مرورگر تغییر دهید.
  7. روی پیوند صفحه ای که به کش آفلاین اضافه کرده اید کلیک کنید. حتی اگر آفلاین هستید ظاهر شود.
  8. روی پیوند صفحه ای که به کش آفلاین اضافه نکرده اید کلیک کنید. درخواست با شکست مواجه خواهد شد.

این تنها مورد استفاده برای کار با نمونه های Cache در window نیست. برای مثال، می‌توانید دارایی‌هایی را که می‌دانید کاربر برای انجام یک عمل خاص به آن نیاز دارد، به‌طور پیش‌بینی‌شده واکشی و ذخیره کنید. این امر تأخیر بارگیری آن دارایی ها را در صورت تقاضا کاهش می دهد یا از آن جلوگیری می کند.

موارد استفاده بالقوه مفید دیگری نیز وجود دارد - و از آنجایی که می‌توانید در غیاب یک سرویس‌کار با نمونه‌های Cache تعامل داشته باشید، ممکن است همه آنها نیاز به نصب نداشته باشند.

،

با تمام این کارهایی که خارج از window انجام داده‌ایم، ممکن است فکر کنید که نمونه‌های Cache فقط در محدوده Service Worker قابل دسترسی هستند. واقعیت این است که می‌توانید به نمونه‌های Cache هم در محدوده سرویس‌کار و هم در کد سنتی برنامه وب خود که در window اجرا می‌شود دسترسی داشته باشید. این کار باعث می‌شود تا کاربر بتواند مستقیماً با حافظه پنهان سرویس‌دهنده تعامل داشته باشد یا رابط کاربر را بر اساس وضعیت حافظه پنهان به‌روزرسانی کند.

یکی از موارد استفاده بالقوه ارائه ویژگی «ذخیره برای آفلاین» برای صفحاتی است که کاربر ممکن است بخواهد بعداً بخواند، اما بدانید که ممکن است در آن زمان آفلاین باشند. تعبیه Glitch زیر نحوه انجام این کار را با Workbox نشان می دهد.

در جاسازی بالا، می‌توانید ببینید که اسکریپت app.js با کلیک روی دکمه «ذخیره برای آفلاین» از بافت window در حافظه پنهان آفلاین می‌نویسد. در سرویس‌کار، دارایی‌های ثابت صفحه برای دسترسی آفلاین از پیش ذخیره می‌شوند. یک استراتژی NetworkOnly با یک کنترل کننده ویژه استفاده می شود که دسترسی آفلاین را برای صفحات ذخیره شده در حافظه پنهان مدیریت می کند و به یک NavigationRoute ارسال می شود.

برای آزمایش عملکرد در جاسازی Glitch، موارد زیر را انجام دهید:

  1. یک پنجره مرورگر جدید باز کنید و به https://save-for-offline-test.glitch.me/ بروید
  2. روی دکمه ای که می خواند افزودن به لیست خواندن آفلاین را کلیک کنید.
  3. ابزارهای توسعه دهنده مرورگر خود را در فایرفاکس یا کروم باز کنید. اگر از Chrome استفاده می کنید، به پنل برنامه بروید. در فایرفاکس، به پنل ذخیره سازی بروید.
  4. در ابزارهای توسعه‌دهنده هر یک از مرورگرها، یک آیتم حافظه پنهان را در سمت چپ می‌بینید. برای گسترش آن کلیک کنید. در ورودی حافظه نهان آفلاین ، باید URL صفحه ای را که به تازگی اضافه کرده اید در قسمت سمت راست ببینید.
  5. روی پیوند هر صفحه دیگری در پایین صفحه کلیک کنید.
  6. برای شبیه سازی اتصال آفلاین، حالت آفلاین را در هر مرورگر تغییر دهید.
  7. روی پیوند صفحه ای که به کش آفلاین اضافه کرده اید کلیک کنید. حتی اگر آفلاین هستید ظاهر شود.
  8. روی پیوند صفحه ای که به کش آفلاین اضافه نکرده اید کلیک کنید. درخواست با شکست مواجه خواهد شد.

این تنها مورد استفاده برای کار با نمونه های Cache در window نیست. برای مثال، می‌توانید دارایی‌هایی را که می‌دانید کاربر برای انجام یک عمل خاص به آن نیاز دارد، به‌طور پیش‌بینی‌شده واکشی و ذخیره کنید. این امر تأخیر بارگیری آن دارایی ها را در صورت تقاضا کاهش می دهد یا از آن جلوگیری می کند.

موارد استفاده بالقوه مفید دیگری نیز وجود دارد - و از آنجایی که می‌توانید در غیاب یک سرویس‌کار با نمونه‌های Cache تعامل داشته باشید، ممکن است همه آنها نیاز به نصب نداشته باشند.