2009-07-12 3 views
1

Я использую ASP.NET MVC, частичные представления и диалоги. Я делаю запрос ajax на сервер, и он возвращает мне частичное представление. Затем я использую: $ ('# elementTag'). Html (returnData), чтобы пополнить ограничивающие div. Однако этот частичный вид содержит внутреннюю работу для диалога, завернутого в элемент формы, вместе с остальным содержимым частичного представления. Javascript также содержится в частичном представлении, после того, как документ будет готов, он установит диалог.jquery html создание кратных одного и того же вида

Я начал с этого метода проектирования: объединить содержимое диалогового окна вместе с частичным представлением, чтобы держать вещи вместе.

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

Использование Firebug Я заметил, что каждый раз, когда я запрашивал частичный вид, содержащий форму диалога, он создавал другую форму того же типа (т. Е. Определенно утечка памяти там). Мой html заменялся, и я верю, что сценарий также дублируется.

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

Какова наилучшая практика здесь? Должен ли я связывать все содержимое диалогового окна с хозяином сайта и всем javascript в один файл js или есть способ заменить все?

ответ

0

У меня было бы все js в одном сжатом, gzip обслуживаемом файле, таким образом он загружается и кэшируется на первой странице.

Чтобы сохранить чистое разделение сценария, я стараюсь, чтобы пространство моего сценария включало мой скрипт в application.pages или controller.action и внутри были функции init, которые настраивают функции, необходимые для этой страницы (загружать вкладки, настраивать модальный диалог и т. Д.), Чтобы не имеет значения, загружается ли страница через ajax или не выполняется тот же скрипт. Это не было тривиально для настройки, но принесло дивиденды. Paul irish имеет похожие мысли в своем блоге here. Это может вам помочь.

0

Благодарим вас за ответ. Я новичок в javascript, но не новый, очень, очень ржавый, с множеством старых, вредных привычек, которые быстро догнали меня.

Не совсем уверен, как ваш ответ решает мою проблему, но это мое короткое пришествие (незнание) не ваше, и поэтому я считаю ваш ответ ответом.

В мире шаблонов ajax зная шаблоны javascript и лучшие практики стали очень важными. Я использую старый способ полного обновления страницы (т. Е. Очистить корзину, чтобы освободить место для нового мусора). Вы можете уйти с множеством вредных привычек, больше нет.

Ваш короткий ответ побудил меня вернуться к основам с новой перспективой.

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