Я хочу обновить страницу с помощью location.reload (), а затем вызвать функцию, но функция выполняется только на мгновение и исчезает

#javascript #html

Вопрос:

Вот код, который я использую для вызова функции:

 btn.addEventListener("click", () => {
    
    myCalc();

    location.reload()   
})
 

Комментарии:

1. вы можете использовать Primse как myCalc().then(function () { location.replad()}) обычно то, что произошло с вами, потому что страница уже перезагружена

Ответ №1:

Выполнение скрипта привязано к странице. Если загружается новая страница (даже если это та же самая), выполняемый скрипт останавливается. Это все равно что иметь план «Я взорву эту ядерную бомбу у себя на кухне, а потом приготовлю завтрак». Нет, вы не будете, это не так работает с ядерными бомбами, и это не так location.reload() работает 😉

Вместо этого вы можете убедиться, что при загрузке страницы запускается скрипт, который реагирует на определенное сохраненное вами состояние; чтобы, даже если ваш предыдущий сценарий умер, вновь загруженный скрипт знал, что делать дальше. Самый простой способ сделать это, скорее всего, с помощью localStorage . Или, еще лучше, вы можете построить свое приложение таким образом, чтобы перезагрузка не была необходима: это называется Одностраничным приложением (SPA).