У меня проблемы с выбором правильной практики кодирования JavaScript в пользовательском интерфейсе. Поэтому я ищу более разумный способ делать вещи. Я использую jQuery с ASP.NET, и я делаю что-то вроде ниже, что кажется непрофессиональным и глупым. Программирование на JavaScript всегда было для меня загадкой. Я знаю, как это сделать, но я никогда не знал, как это сделать правильно.
$(function(){
$('submit').click(function() {
//behaviors, setup styles, validations, blah...
});
});
Проблемы:
- Дублирование кода зачастую сложнее поддерживать и использовать повторно
- С помощью ClientIds, генерируемых ASP.NET, трудно разделить фрагменты кода на отдельные файлы js
- Общие объявления размещаются на главных страницах, однако функция готовности документа jQuery также присутствует почти на всех других страницах
Цели:
- Библиотека JavaScript / независима от фреймворка, так что будет проще переключать фреймворки в будущем
- Инкапсулировать / модулировать логику для легкого повторного использования, так что на каждой странице будет только несколько простых строк кода инициализации
- Разделение задач для удобства обслуживания и удобочитаемости
Вопросы:
Будучи разработчиком на C #, я думаю, в основном, оО, а jQuery очень процедурный. Я понимаю концепции анонимной функции, но в целом мой ум все еще пытается создать модель предметной области, которая абстрагирует UI, а затем объявляет свойства или методы. Но я действительно не уверен, так ли это в JavaScript. Или я слишком идеален, или я слишком стараюсь сделать что-то, что не должно быть похожим на OO OO? Итак, вопросы:
- Должен ли я начать инкапсулировать / модулировать функции с использованием прототипа JavaScript и сделать его более похожим на ОО? Так что элементы управления HTML или поведения могут быть инкапсулированы для повторного использования?
- Или я должен начать инкапсулировать логику в плагин jQuery? Но в этом случае код будет на 100% зависеть от jQuery.
- Или любые другие подходы?
Спасибо.
Обновлено:
Я только что нашел этот слайд , и это, кажется, хорошая отправная точка.
Это также хороший пример , который я только что нашел. И хороший учебник от создателя jQuery.