Не удается запустить JavaScript после перенаправления на другую страницу в приложении Cordova - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть проблема, которая беспокоила меня в течение нескольких дней.Короче говоря, у меня есть страница index.html, которая сначала отображает страницу входа для пользователя при запуске приложения.Там я загружаю свой файл scripts.js, который содержит функции для всех страниц (включая signup.html), но проблема в том, что есть функция showTab (), которая должна запускаться, когда пользователь хочет создать учетную запись и перенаправляется настраница signup.html Я делаю это следующим образом:

<a class="text-info font-weight-bold h5 text-underline"  href="signup.html" data-transition="slide-in"><U>Create
one now!</U></a> 

Таким образом, вы можете видеть, в чем проблема, когда приложение загружает scrips.js и загружается функция showTab (), которая должна запускаться при регистрации.html проходит один раз на странице индекса, и когда пользователь пытается перейти к signup.html с помощью href и data-transition = "slide-in", scripts.js не загружается полностью для повторного запуска функции showTab ()которая является первой строкой в ​​scripts.js. Один из способов решить эту проблему - изменить data-transition = "slide-in" на data-ignore = "push", что приводит к перезагрузке файла signup.html, но при этом переход теряется.Я использую Ratchet Framework и Cordova для создания приложения.Я попытался также добавить onload = "showTab ()" в signup.html

<div class="content bg-primary" onload="showTab()>

, что опять-таки не перезагружает JS.

1 Ответ

0 голосов
/ 12 февраля 2019

Вам следует , а не пытаться перемещаться между страницами с помощью Cordova.

Это первый элемент разработки Best Practices Cordova * :

Прежде всего - ваши приложения Cordova должны иметь дизайн SPA (одностраничное приложение).В широком смысле SPA является клиентским приложением, которое запускается из одного запроса веб-страницы.Пользователь загружает начальный набор ресурсов (HTML, CSS и JavaScript), а дальнейшие обновления (показ нового представления, загрузка данных) выполняются через AJAX.SPA обычно используются для более сложных приложений на стороне клиента.GMail является отличным примером этого.После загрузки GMail все почтовые представления, редактирование и организация выполняются путем обновления DOM, вместо того, чтобы фактически покинуть текущую страницу для загрузки совершенно новой.

Обратите особое внимание на это:

Даже если вы решите не использовать Cordova, создание мобильного приложения без использования одностраничной архитектуры будет иметь серьезные последствия для производительности.Это связано с тем, что для перехода между страницами потребуется перезагрузка скриптов, ресурсов и т. Д.Даже если эти активы кэшируются, проблемы с производительностью все равно будут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...