Чтение онлайн

ЖАНРЫ

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то приложение больше не кэшируется. " +

"Перезапустите его, чтобы получить последнюю версию из сети.");

Поделиться с друзьями: