Как избежать мерцания Angular 2 на новой странице URL-адреса?

Когда я захожу на свою страницу: http://localhost/dashboard, введя его в URL , а затем введите другую страницу http://localhost/owners, также введя ее в поле URL, вызывает мигание.

Как этого избежать, как в примере на этой странице?

https://smartadmin-ng2.github.io/#/dashboard/analytics

Или какие моменты проверить?


person Marco López    schedule 30.04.2017    source источник
comment
когда вы вводите новый URL-адрес вручную, все приложение восстанавливается, и из-за этого вы видите задержку.   -  person Julia Passynkova    schedule 01.05.2017
comment
Как так, @JuliaPassynkova? Что браузер делает по-другому, когда я нажимаю Enter в адресной строке браузера, и когда я нажимаю ссылку href на странице?   -  person DavidS    schedule 01.05.2017
comment
Прочитайте это. stackoverflow.com/questions/2092527/   -  person wannadream    schedule 01.05.2017
comment
Огромная разница. Нажатие на href внутри SPA (одностраничное приложение) - приложение не перезагружается, поэтому нет щелчка.   -  person Julia Passynkova    schedule 01.05.2017
comment
@wannadream, это объясняет, что происходит, когда вы нажимаете Enter в адресной строке браузера, но не объясняет, как (и если) это поведение отличается от простой ссылки href, которая отправляет запрос GET по адресу.   -  person DavidS    schedule 01.05.2017
comment
все, что после #/...... перехватывается и обрабатывается фреймворком Angular. В приложении управляются все относительные ссылки на нее. Если вы вводите что-то в URL, это выходит из-под контроля Angular. Это поведение браузера.   -  person wannadream    schedule 01.05.2017
comment
@JuliaPassynkova Кажется, я понимаю, что ты имеешь в виду. В примере SPA в OP они href не выдают простой старый запрос GET к документу, это вызов AJAX, верно?   -  person DavidS    schedule 01.05.2017
comment
Спасибо, ребята, это логично   -  person DavidS    schedule 01.05.2017
comment
в SPA маршрутизация делает свое дело - удаляются старые компоненты и добавляются новые. в Angular мы используем Angular route, но все другие фреймворки SPA имеют аналогичное программное обеспечение. Кстати, это может быть случай, когда между изменениями маршрута нет вызова ajax.   -  person Julia Passynkova    schedule 01.05.2017


Ответы (1)


Когда вы вводите новый URL-адрес вручную, все приложение создается заново, и из-за этого вы видите задержку.

Нажатие на href внутри SPA (одностраничное приложение) - приложение не перезагружается, поэтому нет щелчка. В SPA маршрутизация выполняет работу при изменении href — удаляет старые компоненты и добавляет новые. В Angular мы используем Angular Router, но все другие фреймворки SPA имеют аналогичное программное обеспечение для маршрутизации. Кстати, это может быть случай, когда между изменениями маршрута нет вызова ajax

person Julia Passynkova    schedule 30.04.2017
comment
То есть внутри будет какой-то скрипт, чтобы избежать обновления при изменении URL-адреса? - person Marco López; 01.05.2017