Тег <html> Атрибут <manifest>

Атрибут manifest реализует механизм кэширования, который позволяет создавать оффлайновые приложения, т.е. работающие в автономном режиме без непосредственного подключения к Интернету. При первой загрузке страницы браузер обычно просит сохранить данные для своей работы, а затем уже обращается к ним при необходимости.

В качестве значения атрибута manifest указывается относительный или абсолютный путь к текстовому файлу, он называется «файл манифеста» или просто «манифест». Имя и расположение файла может быть любым, но он должен отдаваться сервером с заголовком text/cache-manifest. Например, для веб-сервера Apache в файле .htaccess расположенным в корне сайта следует прописать такую строку.

AddType text/cache-manifest .cache

В этом случае файл манифеста имеет расширение cache. Сам манифест информирует браузер о том, какие ресурсы необходимо сохранить в локальном кэше. Этот список может содержать HTML и CSS-файлы, изображения, скрипты. Имена файлов перечисляются внутри секций описанных в табл. 1.

Табл. 1. Разделы манифеста
РазделОписание
CACHE MANIFEST Этой обязательной строкой должен начинаться любой манифест.
CACHE: Содержит перечень ресурсов, которые браузер должен кэшировать. Данный раздел используется по умолчанию, если его не указать и нет других разделов, то записи в манифесте причисляются к этому разделу.
NETWORK: Список ресурсов, которые доступны только при подключении к сети. Обычно в этот раздел входят программы выполняемые на стороне сервера.
FALLBACK: Список замещающих файлов, которые будут использоваться при отсутствии подключения к сети. Допустимо использовать символ * для обозначения всех файлов. Например, *.php /offline.html означает, что вместо любого файла с расширением php будет показана страница offline.html.

поддержка браузерами:
IExplorer Chrome Opera Safari Firefox Android iOS
X 8.0+ 9.6+ 4.0+ 4.0+ 2.1+ 3.0+
спецификация:
HTML: 3.2 4.01 5.0
XHTML: 1.0 1.1
синтаксис:
<html manifest="URL">
значения:

В качестве значения указывается адрес файла манифеста.

пример кода:
<!DOCTYPE html>
<html manifest="22.cache">
 <head>
  <meta charset="utf-8">
  <title>22 хода</title>
  <link href="22.css" rel="stylesheet">
  <script src="22.js"></script> 
 </head>
 <body>
  <div id="main">
   <h1>22 хода</h1>
   <canvas id="game" width="400" height="400">
     <img src="images/old.png" alt="">
   </canvas>
   <p>Ходов: <span id="move">0</span>
   <span id="msg"></span></p>
   <h3>Цель игры</h3>
   <p>Вам необходимо за 22 хода сгруппировать все серые фишки
   на кружках в верхнем квадрате, а чёрные фишки&nbsp;&#8212; в нижнем. 
   Кружки с точкой должны оказаться незанятыми.</p>
   <p>Фишка может перемещаться только по линиям&nbsp;&#8212; по горизонтали
   или вертикали, а также перепрыгивать через фишку, если за ней есть свободное 
   поле.</p>
  </div>
 </body>
</html>

Содержимое файла 22.cache будет таким:

CACHE MANIFEST
# Версия 1.0

CACHE:
22.css 
22.js
images/old.png