Разделение клиентской логики от серверной логики в допускающем повторное использование способе использовать MVC

Я решил использовать jQuery inputToken http://loopj.com/jquery-tokeninput/

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

8
задан tereško 13 July 2012 в 07:09
поделиться

6 ответов

На два; у Вас должна всегда быть серверная проверка, а также клиентская проверка

На три; если бы можно найти способ управлять DB на стороне клиента, которая была бы впечатляющей ;)

Я не знаю, как ASP.net работает, хотя, таким образом, я только говорю на основе своего опыта PHP.

Я записал бы средства управления, которые соединяются клиентским кодом и сервером. Для каждого управления нужны форма, клиентская логика и серверная логика. Форма выписана Вашим механизмом шаблонной обработки, клиентская логика присоединена к форме и записанный в JS, и серверная логика является парой контроллера/действия где-нибудь, которая управляет моделью. Очевидно, Вы не хотели бы связывать свою клиентскую логику с определенным действием/контроллером, так, несомненно, определили бы интерфейс, который может использоваться, чтобы говорить с Вашим управлением вместо этого...

Затем для каждой формы я записал бы класс в JavaScript, это инстанцирует Ваши средства управления. Например; можно иметь контроль:

{include file = "list_view.php" id = "ListView1" data = $Data.List}

который распечатал бы Вашу форму. Затем в Вашем классе контроллера страницы:

this.ListView1 = new ListViewController({id : "ListView1", serverCtrl : "Users"});

Теперь можно использовать "это. ListView1" для управления представлением списка. Контроллер представления списка действительно наполняет как, делает запросы Ajax для новых страниц, если использование нажимает кнопку следующей страницы - и также обрабатывает столбцы и сортирующий (который также делегирует к серверу).

2
ответ дан 5 December 2019 в 19:04
поделиться

Я просто погуглил это, так возьмите его с мелкой частицей соли. JavascriptMVC утверждает, что был платформой MVC. Снова, у меня нет опыта с ним, но это может быть достойное внимания.

3
ответ дан 5 December 2019 в 19:04
поделиться

Сохраните это простым. Создайте свое приложение, чтобы быть полностью функциональными в платформе MVC ASP.Net. Никакой JavaScript не требуется на этом этапе тестирования.

Теперь добавьте хороший материал путем соединения jQuery в site.master (ссылка Google) и у основания Представлений, которые требуют опыта web 2.0, связываются для адаптации файлов JS, которые добавляют функциональность незаметно. Выключите JS, и Ваше приложение ухудшается назад к предыдущему шагу.

Например, Вы хотите добавить клиентскую проверку в дополнение к серверной стороне. Файл JS присоединил бы обработчик событий к формам onsubmit. Обработчик затем использовал бы объект, который был сгенерирован сервером (Тот же объект, используемый для проверки сервера), который будет лучшим как объект JSON, потому что это совместимо с JS и ASP.NET. Члены объекта были бы правилами проверить и сообщения об ошибках для записи в DOM в том же местоположении, Вы выбрали ошибки серверной стороны. Ваш false возвращающего обработчика, пока все не допустимо и верно, когда корректный.

Вы хотите хорошую необычную функцию, такую как представление лайтбокса Ваших изображений. Добавьте плагин для своего представления, измените разметку <ul id="lightup"> ..., добавьте код:

$(function() {
   $(#lightup).showit(400); // or something like that
});

и Ваша польза для движения.

Попытайтесь разделить совместно использованную функциональность от своего серверного кода в веб-сервис или страницу так, чтобы и клиент, через XHR и сервер, мог совместно использовать ту же функциональность/данные.

3
ответ дан 5 December 2019 в 19:04
поделиться

Если Вы используете MVC, то я предполагаю, что Ваше представление использует движок шаблонов. Каждая страница связана с шаблоном, и каждый шаблон обычно содержит ссылку на один или несколько сценариев. Вопрос, как на Ваши сценарии ссылаются в шаблоне? Действительно ли они статичны, или действительно ли они являются динамичными? В Ваших контроллерах у Вас должна быть опция включать любые сценарии в представление, используемое для страницы независимо от шаблона. Я часто предлагаю, чтобы это "включало его при необходимости" подход, потому что моделирование клиентского MVC означает точно, что Вы сказали, что это означает - у Вас есть две платформы MVC теперь для поддержания. Не только, что - с большинством клиентских моделей у них есть прямой доступ к Вашей модели серверной стороны, которая побеждает цель Вашей серверной стороны MVC. Вы теперь обходите контроллер полностью.

Когда дело доходит до JavaScript лучшая вещь сделать состоит в том, чтобы сохранить это очень простым. С jQuery у Вас есть еще лучший шанс того, чтобы заставлять это произойти. Каждая страница получает ядро, и у Вас есть несколько других файлов JavaScript в той же папке, при этом каждый - плагин, или расширение jQuery возражают что карты против очень определенной функциональности. Если разработчики хотят знать, существует ли функциональность уже, все, что Вы делаете проверить файловую систему, где файлы JavaScript расположены. Если плагин существует, включайте его в свой контроллер для использования на странице. Таким образом, можно создать помощников на серверной стороне, которые сидят между клиентским приложением и любыми существующими контроллерами. Помощник характерен для той функциональности и плагина, и Вы не открываете общий доступ к своим моделям от клиентского.

1
ответ дан 5 December 2019 в 19:04
поделиться

... Это зависит...

На самом деле лучшие вещи разрабатывают UI с помощью CSS / JavaScript / HTML для стиля / поведение / структура +, данные, у этих дневных людей хотят ajax взаимодействия (они видят, что спокойно вещи везде так они, которыми ожидание состоит в том, что они не должны перезагружать все страницы каждый раз), таким образом, я думаю, что необходимо принять это во внимание. BTW MVC заканчивается, когда Ваше содержание подается, и это не должно быть содержимое HTML, можно служить xml или json в Представлении.

MVC ASP.NET разрешают возвращать Содержание ("ТЕКСТ"), таким образом, можно организовать бэкэнд с помощью MVC и взаимодействия с пользователем / поведение в JavaScript, например, когда вызов ajax отправляется на сервер, Вы называете часть Контроллера своего приложения, таким образом, можно назвать действие Ajax, которые переключаются на ajax Модель, которые представляют как JSON и возвращаются к части JS UI (Поведенческая часть).

Так как Поведенческая часть определяется в Вашей части Представления (начальное Представление состоит из CSS / HTML JS), поэтому, пока представляемая первая часть, думают, что Вы не повредили шаблоны MVC.

PS. Я, забывал говорить, что, очевидно, действия DB остаются в Вашей модели (можно думать в модели как место, где Уровень доступа к данным + Слой Бизнес-объекта остается),

-1
ответ дан 5 December 2019 в 19:04
поделиться

не возвращать json / xml представлениям и строить их с генерацией jquery dom на клиенте. Это нормально с точки зрения производительности на приличных машинах, но я допустил эту ошибку и при попытке просмотреть сайт с помощью моего iphone загрузка занимает 60 секунд ... и я единственный человек на сайте! : -)

так что на данный момент я просто использую jquery dom инъекцию для обновлений ajaxy, а не рендеринг всей страницы.

1
ответ дан 5 December 2019 в 19:04
поделиться
Другие вопросы по тегам:

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