مانیفست کش در اچ‌تی‌ام‌ال۵

مانیفست کش در اچ‌تی‌ام‌ال5 (HTML5) یک ویژگی ذخیره‌سازی نرم‌افزاری است که امکان دسترسی به یک برنامه وب را حتی بدون اتصال به شبکه فراهم می‌کند. این مانیفست در ۲۸ اکتبر ۲۰۱۴ بخشی از توصیه نامه اعتلاف وب جهان‌گستر (W3C) شد.

از سال ۲۰۲۱، این فناوری دیگر به‌طور گسترده در دسترس نیست. این فناوری از فایرفاکس ۸۵، حذف شد و به‌طور پیش فرض در کروم ۸۴ نیز غیرفعال شد و در کروم ۹۵ حذف شد. در حال حاضر استفاده از هر یک از ویژگی‌های برنامه وب آفلاین به شدت ممنوع است و به جای آن استفاده از سرویس‌ورکر توصیه می‌شود.

پیشینه 
برنامه‌های کاربردی وب شامل صفحات وب هستند که باید از یک شبکه دانلود شوند. برای اینکه این اتفاق بیفتد باید یک اتصال شبکه وجود داشته باشد. با این حال، موارد زیادی وجود دارد که کاربران به دلیل شرایط خارج از کنترل آنها نمی‌توانند به شبکه متصل شوند. اچ‌تی‌ام‌ال۵ امکان دسترسی به برنامه وب را حتی بدون اتصال به شبکه با استفاده از مانیفست کش فراهم می‌کند.

برنامه‌های کاربردی وب از منابع شناسایی شده توسط آدرس‌های اینترنتی تشکیل شده‌اند. اینها می‌توانند اچ‌تی‌ام‌ال، سی‌اس‌اس، جاوا اسکریپت، تصاویر یا هر منبع دیگری باشند که برای ارائه یک برنامه وب مورد نیاز است. آدرس‌های آن‌ها را می‌توان در یک فایل مانیفست کش کپی کرد، که می‌تواند به‌طور منظم توسط نویسنده برنامه وب به‌روزرسانی شود و نشان‌دهنده هر آدرس وب جدیدی است که اضافه یا حذف شده‌است. هنگامی که برای اولین بار به یک شبکه متصل می‌شوید، یک مرورگر وب فایل مانیفست اچ‌تی‌ام‌ال۵ را می‌خواند، منابع داده شده را دانلود می‌کند و آنها را به صورت محلی ذخیره می‌کند. سپس، در صورت عدم وجود اتصال شبکه، مرورگر وب به جای آن به نسخه‌های محلی منتقل می‌شود و برنامه وب را آفلاین می‌کند.

مبانی 
برای اینکه برنامه‌های آفلاین کار کنند، یک فایل مانیفست کش باید توسط توسعه دهنده وب ایجاد شود. اگر برنامه وب بیش از یک صفحه باشد، هر صفحه باید دارای یک ویژگی آشکار باشد که به مانیفست کش اشاره می‌کند. هر صفحه ای که به مانیفست ارجاع می‌دهد به صورت محلی ذخیره می‌شود. فایل مانیفست کش یک فایل متنی است که در قسمت دیگری از سرور قرار دارد. باید با نوع محتوا text/cache-manifest

ویژگی manifest="<path>" باید به عنصر html اضافه شود تا فایل مانیفست کش کار کند. مثال:<!DOCTYPE HTML>
<html manifest="cache.appcache">
  <body>
    …
  </body>
</html>آرگومان صفت manifest یک مسیر نسبی یا مطلق به فایل manifest است.

فایل HTML ارائه شده در زیر را در نظر بگیرید. عنصر <html> نشان می‌دهد که فایلی به نام cache.appcache حاوی فهرستی از منابع (یعنی test.js, test.css) مورد نیاز برای کار آفلاین این صفحه وب است.

نام‌های رایج این فایل cache.manifest و manifest.appcache هستند.<!—- test.html -->
<!DOCTYPE HTML>
<html manifest="cache.appcache">
<head>
  <title>Test</title>
  <script src="test.js"></script>
  <link rel="stylesheet" href="test.css">
</head>
<body>
  Testing the manifest file.
</body>
</html>

منابع 

اچ‌تی‌ام‌ال۵
حافظه نهان