Шрифт:
};
// Сообщить пользователю перед переходом в автономный режим
window.onoffline = function { status("Автономный режим"); }
// При подключении к сети выполнить синхронизацию,
window.ononline = function { sync; };
// Сообщить пользователю, если доступна новая версия приложения.
// Здесь можно было бы выполнить перезагрузку принудительно, вызвав
// метод location.reload
window.applicationCache.onupdateready = function {
status("Доступна новая версия приложения. " +
"Чтобы использовать ее, необходимо перезагрузить приложение ”);
};
// Также сообщить пользователю, если он использует последнюю версию приложения,
window.applicationCache.onnoupdate = function {
status("Bы используете последнюю версию приложения.");
};
// Функция отображения сообщения в строке состояния
function status(msg) { statusline.innerHTML = msg; }
// Выгружает текст заметки на сервер (если сеть подключена).
// Автоматически вызывается через 5 секунд простоя после изменения текста заметки,
function save {
if (idletimer) clearTimeout(idletimer);
idletimer = null;
if (navigator.onLine) {
var xhr = new XMLHttpRequest;
xhr.open("PUT", "/note");
xhr.send(editor.value);
xhr.onload = function {
localStorage.lastSaved = Date.now;
savebutton.disabled = true;
};
}
}
// Проверяет наличие новой версии заметки на сервере. Если она отсутствует,
// сохраняет текущую версию на сервере.
function sync {
if (navigator.onLine) {
var xhr = new XMLHttpRequest;
xhr.open("GET", "/note");
xhr.send;
xhr.onload = function {
var remoteModTime = 0;
if (xhr.status == 200) {
var remoteModTime = xhr.getResponseHeader("Last-Modified");
remoteModTime = new Date(remoteModTime).getTime;
}
if (remoteModTime > localStorage.lastModified) {
status("Ha сервере найдена более новая заметка.");
var useit =
confirm("Ha сервере имеется более новая версия\n” +
"заметки. Щелкните на кнопке Ok, чтобы\n" +
"использовать эту версию, или на кнопке\n"+
"Отмена, чтобы продолжить редактировать\n"+