JavaScript. Подробное руководство, 6-е издание
Шрифт:
// и предотвратить вывод сообщений самим броузером,
function status(msg) {
// Вывести сообщение в элементе документа с id="statusline"
document.getElementById("statusline").innerHTML = msg;
console.log(msg); // А также в консоли для отладки
}
// Каждый
раз, когда приложение загружается, броузер проверяет файл объявления.
// В начале этого процесса первым всегда генерируется событие "checking",
window.applicationCache.onchecking = function {
status("Проверка наличия новой версии.");
return false;
};
// Если файл объявления не изменился и приложение уже имеется в кэше,
// генерируется событие "noupdate" и процедура проверки заканчивается,
window.applicationCache.onnoupdate = function {
status("Версия приложения не изменилась.")
return false;
};
// Если приложение отсутствует в кэше или если изменился файл объявления,
// броузер загрузит и поместит в кэш все, что перечислено в файле объявления.
// Событие "downloading" свидетельствует о начале этой процедуры загрузки,
window.applicationCache.ondownloading = function {
status("Загружается новая версия");
window.progresscount = 0; // Используется в обработчике "progress" ниже
return false;
};
// В ходе загрузки периодически генерируются события "progress”,
// обычно после загрузки каждого файла.
window.applicationCache.onprogress = function(e) {
// Объект события должен соответствовать событию "progress" (подобному тому,
// что используется XHR2), что позволяет вычислять процент выполнения,
// но на всякий случай мы заведем счетчик количества вызовов,
var progress = "";
if (е && е.lengthComputable) // Событие "progress": вычислить процент
progress = " " + Math.round(100*e.loaded/e.total) + "%”
else //
Иначе сообщить кол-во вызовов
progress = " (" + ++progresscount + ")"
status("Загружается новая версия" + progress);
return false;
}
// Когда приложение впервые загружается в кэш, по окончании загрузки
// броузер сгенерирует событие "cached",
window.applicationCache.oncached = function {
status("Приложение загружено и установлено локально");
return false;
};
// Когда обновляется приложение, находящееся в кэше, то по завершении загрузки
// броузер сгенерирует событие "updateready". Обратите внимание, что при этом
// пользователь по-прежнему будет работать со старой версией приложения,
window.applicationCache.onupdateready = function {
status("Была загружена новая версия приложения. Перезапустите его.");
return false;
};
// Если броузер выполняется в автономном режиме и файл объявления не может
// быть проверен, генерируется событие "error". Это же событие генерируется,
// когда некэшированное приложение ссылается на отсутствующий файл объявления,
window.applicationCache.onerror = function {
status("Невозможно загрузить файл объявления " +
"или сохранить приложение в кэш");
return false;
};
// Если кэшированное приложение ссылается на несуществующий файл объявления,
// генерируется событие "obsolete" и приложение удаляется из кэша.
// В следующий раз приложение будет целиком загружаться из сети, а не из кэша,
window.applicationCache.onobsolete = function {
status("3то приложение больше не кэшируется. " +
"Перезапустите его, чтобы получить последнюю версию из сети.");
Поделиться с друзьями: