Привет, у меня есть шаблон ejs на экспрессе, который генерирует HTML. Я написал свой регистрационный код сервисного работника в этом шаблоне, который является общим для всех страниц веб-сайта, и, таким образом, регистрационный код оказывается на каждой странице веб-сайта. Таким образом, при каждом посещении пользователя запускается код регистрации работника службы, что я считаю плохим. Как заставить этот код работать только при первом посещении пользователя?
Пожалуйста, найдите мой код ниже:
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('load', function() {
var hashes = {};
["appCss", "appJs"].map((val,idx) => {
let prop;
if(document.getElementById(val)) {
prop = val.toLowerCase().indexOf("css") == -1 ? "src" : "href";
hashes[val] = document.getElementById(val)[prop];
}
});
hashes = JSON.stringify(hashes);
navigator.serviceWorker.register(`/service-worker.js?hash=${encodeURIComponent(hashes)}`).then(function(registration) {
console.log('ServiceWorker registration successful with scope: ', registration.scope);
}, function(err) {
console.log('ServiceWorker registration failed:', err);
});
});
}
</script>