Last active
November 18, 2016 21:37
-
-
Save pepelsbey/bae6547181cd14e5c77ae87ce1895461 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Проверяем поддержку сервис-воркера | |
if ('serviceWorker' in navigator) { | |
// Регистрируем сервис-воркер | |
navigator.serviceWorker.register('./service-worker.js'); | |
form.addEventListener('submit', function (e) { | |
let formData = new FormData(form); | |
// Отправляем сообщение в фоне | |
navigator.serviceWorker.ready.then(function (swRegistration) { | |
idbKeyval.set('comment', commentArea.value); | |
idbKeyval.set('name', nameInput.value ? nameInput.value : false); | |
messageElement.className = 'message info'; | |
messageElement.textContent = 'Похоже вы в офлайне. Комментарий опубликуется автоматически как только вы будете онлайн.'; | |
return swRegistration.sync.register('form-post'); | |
}); | |
// Всегда вызывайте preventDefault в конце | |
// см. http://molily.de/javascript-failure/ | |
e.preventDefault(); | |
}); | |
// Событие для получения сообщения | |
// отправленного сервис-воркером | |
navigator.serviceWorker.addEventListener('message', function (e) { | |
if (e.data == 'success') { | |
messageElement.className = 'message success'; | |
messageElement.textContent = 'Ваш комментарий успешно опубликован.'; | |
let nameValue = false; | |
idbKeyval.get('name').then(function (data) { | |
nameValue = data; | |
let commentValue = ''; | |
idbKeyval.get('comment').then(function (data) { | |
commentValue = data; | |
appendComment(nameValue, commentValue); | |
}); | |
}); | |
} else if (e.data == 'error') { | |
messageElement.className = 'message error'; | |
messageElement.textContent = 'При публикации комментария произошла ошибка. Попробуйте ещё раз.'; | |
} | |
}); | |
} else if (window.FormData) { | |
// … | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment