2017-02-19 1 views
0

мне было интересно, если это плохая практика, чтобы использовать что-то вродеИспользование .on («hashchange», ...) для запуска изменений страницы в одностраничном приложении?

window.location.hash = '#example'; 

и с этим:.

$(window).on('hashchange', function() { 
    if (window.location.hash) { 
     navigateToHashUrl(window.location.hash); 
    } 
}); 

function navigateToHashUrl(hashUrl) { 
    if(hashUrl == '#example') { 
     goToExamplePage(); 
    } else if ... 
    ... 
} 

делегировать фактические методы, которые будут использовать $() нагрузки («HTML»), чтобы загрузить страницу?

В некоторых случаях в моем веб-приложении передняя часть отправляет запрос, и если все в порядке, на заднем конце будут отображаться данные, которые указывают на изменение хеш-кода. В таких случаях я использую такие вещи.

Я не понимаю, почему это было бы плохой практикой, но я новичок в веб-разработчике и хотел бы знать, делаю ли я все, что я не должен делать.

Спасибо!

+0

Хотя я не вижу ничего плохого в этом подходе, вам может понадобиться использовать плагин для маршрутизатора: https://github.com/camme/jquery-router-plugin – djthoms

+0

Даниэль, не могли бы вы расширить то, что goToExamplePage() делается? – rasmeister

ответ

0

Настоящим преимуществом одностраничного приложения (spa) является динамическое изменение частей экрана на основе взаимодействия с пользователем. Ограничение себя тем, что серверное приложение управляет переходом страницы, кажется ограниченным.

В последнее время я разработал bootstrap html один раз и после этого клиентское приложение запускает процесс, запрашивая данные по мере необходимости на основе взаимодействия с пользователем.

Вы можете делать то, что делаете, но я согласен с комментариями, которые предполагают, что вам может быть выгоднее использовать маршрутизатор для облегчения.

Лично я хотел бы попытаться отойти от «страницы» мышления и использовать бэкэнд для обслуживания данных через RESTful api. В конце концов, поэтому он называется одностраничным приложением.

Смежные вопросы