Представляемый js по сравнению с функциональным js: Разделите их? Общая архитектура?

Это - общий вид вопроса.

Очень часто я должен записать JavaScript для веб-страниц. Учет лучших практик, незаметного js, и т.д. У меня есть свой JavaScript в отдельных *.js файлах. Каждая страница получает свой собственный js файл. То, что несколько беспокоило меня в последнее время, является соединением представляемого кода с функциональным кодом, с которым я всегда заканчиваю.

Так, например, я присвоил бы a .click обработчик к элементу. При том щелчке элемент должен изменить свое появление, и вызов Ajax должен быть выполнен к серверу. Так, прямо сейчас я сделал бы обе из этих вещей в этом .click обработчик. Это могло бы стать большим в зависимости от какой потребности быть выполненным. Когда я возвращаюсь к этим блокам кода после не касания их в течение недели, я часто чувствую, что оно устраняет слишком много времени для трассировки через все строки кода, когда я только должен зафиксировать что-то с появлением.

Так или иначе, какая-либо идея об архитектуре/дизайне для представляемого js по сравнению с функциональным js? Сохраните их в одном файле, но ворвитесь в отдельные функции? Повредите их в 2 отдельных файла? Оставьте их в покое?

7
задан halfer 8 July 2018 в 11:17
поделиться

2 ответа

Я бы старался держать их все вместе, которые связаны с событием, которое их инициировало, но иногда добавляю функцию для вызова для выполнения определенной группы вещей. Пример:

function domyUIstuff(myevent, myselector)
{
// stuff here
};
function domyBehaviorStuff(myevent, myselector)
{
//dostuffhere
};
$(selector).click(function(e)
{
   domyUIstuff(e,$(this));
   domyBehaviorStuff(e,$(this));
};

Боковое примечание: я храню вещи отдельно (я делаю много вещей asp.net) от разных пользовательских элементов управления - я создаю файл myusercontrol.js для своего myusercontrol.ascx, а также файл mypage.js для мой mypage.aspx, который имеет тенденцию сокращать «шум» при отладке - я помещаю свои «общие» функции в файл подкачки, которые я могу вызывать из своих элементов управления, таких как общие обработчики сообщений ajax или общие «служебные» функции.

0
ответ дан 7 December 2019 в 20:32
поделиться

Я считаю полезным иметь три файла JS на каждой динамически генерируемой странице. Общие функции, которые повторно используются повсюду, специфические функции проекта, которые используются во всем проекте, и специфичный для страницы файл js. Таким образом, вы поймете, что можно использовать повторно, а что нет. Это также побуждает вас «продвигать» свой код.

По мере того, как вы «продвигаете» его, вы обнаружите, что все больше и больше разделяете его на UI или Behavior. По мере того, как все больше материалов разделяется, вы можете включить 6 файлов или просто разбить каждый файл на структуру пакета, как вы предлагали ранее UIFunctions (). DoStuff () ... Однако, если вам нужно добавить в свой материал префикс PageName, вы этого не сделали продвигал ваш код, и, может быть, вам пора это сделать: -)

Я так и делал.

1
ответ дан 7 December 2019 в 20:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: