Я использую события для управления пользовательским интерфейсом после того, как пользователи входят и выходят с веб-сайта, когда происходит вход в систему, публикуется событие входа в систему и когда пользователь выходит из системы, публикуется событие выхода из системы.
Имея эту систему на месте, я пробую идею небольших встроенных кусочков javascript для работы с элементами пользовательского интерфейса, которые подписываются на события.
В верхней части страницы находится ссылка для входа / выхода из системы, поэтому я использую следующий код для изменения статуса входа в систему
<div id="account_panel" class="signed_out">
<div class="in">
<a href="/account" class="name"></a> | <a href="/account/signout">Sign-out</a>
</div>
<div class="out">
<a href="/account/signin" class="signin">Sign-in</a> | <a href="/account/register" class="register">Register</a>
</div>
</div>
<script>
if (window.jQuery) {
$('body').on('login.account.website', function(event, data){
$('#account_panel').removeClass('signed_out').addClass('signed_in');
if (data)
jQuery('#account_panel .name').text(data.first_name+' '+data.last_name);
});
}
</script>
У меня есть несколько таких кусков кода, идея в том, что они все самодостаточны и не влияют на другие вещи или не зависят от них напрямую, javascript относится только к коду рядом с ним, поэтому представляется разумным соединить их вместе.
Исходное состояние HTML генерируется на стороне сервера, чтобы сайт мог функционировать без JavaScript, фрагмент кода, подобный этому, также содержится в своем собственном файле шаблона.
Я хочу продолжить использовать этот метод для различных элементов на сайте, но мне интересно узнать, есть ли лучший поддерживаемый метод, который я должен использовать.
Спасибо