Я пытаюсь использовать nprogress с PWA, который я построил, чтобы показать панель загрузки, особенно когда приложение запускается в автономном режиме.
Моя мысль состоит в том, чтобы запустить бар при срабатывании beforeunload
и завершить его непосредственно перед тем, как страница действительно выгружается.
Для этого я настроил следующее:
import NProgress from "nprogress";
window.onbeforeunload = () => {
NProgress.start();
};
window.onunload = () => {
NProgress.done();
};
Конечно, я пришел к выводу, что onunload
срабатывает после того, как содержимое страницы становится скрытым, и, таким образом, мой индикатор выполнения никогда не получает возможности завершиться.
Я пытался измениться так, чтобы при загрузке следующей страницы индикатор выполнения продолжался, но это тоже не совсем правильно.
В случае использования window.onload = () => { NProgress.done(); }
индикатор выполнения перезапускается с 0, а не сохраняет процент завершения с предыдущей страницы. Это приводит к странному поведению, описанному ниже:
- Пользователь нажимает ссылку
- Индикатор выполнения появляется и прогрессирует от 0 до ~ 0,4
- Загрузка новой страницы
- Появляется индикатор выполнения
- Индикатор выполнения мгновенно прогрессирует от 0 до 1
Это означает, что есть странная вспышка без индикатора выполнения, затем индикатор выполнения сброса, прежде чем окончательно завершить его.
Как я могу изменить свои сценарии, чтобы индикатор выполнения завершался непосредственно перед перенаправлением страницы?