2015-03-05 6 views
1

У меня есть специальная веб-страница, которая требует около 6 различных форм; некоторые из них содержат до 15 строк уникальных меток и входов.Создать формы динамически или статически?

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

var myForm = { 
    row1 : { 
     label : { text : 'First Field'} 
     input : { 
      type : 'dropdown', 
      values : { 1 : 'Enabled', 0 : 'Disabled'} 
     } 
    } 
} 

.. и так далее.

Тогда я понял, может быть, лучше всего напечатать каждую форму в HTML, поместить ее на HTML-страницу и скрыть ее до тех пор, пока она не понадобится (они реализованы как оверлеи). Однако я считаю, что это можно считать плохой практикой, потому что:

1) Страница находится на длинном опросе, обновляющемся каждые 5 секунд и, таким образом, перерисовывая страницу. Будет ли он перерисовывать даже скрытые вещи, такие как формы?

2) Мой HTML-файл будет большой

Мой вопрос: Должен ли я просто хранить много форм для страницы в HTML, или я должен динамически создавать их. Динамическое их создание по-прежнему означает, что у меня будут большие объекты в файлах javascript. Статическое вложение их на HTML-страницу означает, что они могут (не уверены) перерисовываться на каждой странице повторно рисовать.

+1

Сформулируйте вопрос ... – Harijoe

+0

Это довольно много в моем названии. – tdoakiiii

+0

Зачем вам нужно перерисовывать страницу? Не можете ли вы добиться опроса, который вы хотите с помощью Ajax? –

ответ

1

Как указано в вашем комментарии, вы уже используете ajax и не загружаете полную страницу для обновления страницы.

Я бы не стал беспокоиться о перерисовке страницы при изменении dom. Многие вещи могут быть (внутренне в браузере) кэшированы и нет дополнительной обработки запросов/ответов. Изменение dom в порядке - выполнение полного запроса страницы выполняется медленно.

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

Если бы я тебя, я бы спросить себя это:

  1. Какое решение проще понять (для других людей, или сами лет с этого момента)
  2. Какое решение легче поддерживать? (Какие изменения возможны?)
  3. Я пинаю себя за добавление этого: как вы выполняете задачу быстрее всего? (Кто платит за это и какое решение вы уже реализовали).

Следует отметить, что динамическая версия позволяет создать интерфейс для добавления/удаления/изменения полей через бэкэнд или подобное. Если это желание, вы можете захотеть так. Но не рассчитывайте то, что вы еще не нужно, что приводит к этому:

YAGNI и KISS

+0

Спасибо. Скорость создается мгновенно при создании формы.Но я небезопасный перфекционист и никогда не знаю, правильно ли я поступаю. Есть так много плюсов и минусов. HTML-форму легко отслеживать, но сложнее поддерживать (скажем, я хотел бы добавить новый класс ко всем меткам). JS труднее следовать, но простота в обслуживании (просто добавьте класс attr к генератору меток). – tdoakiiii

+0

Посмотрите на рамки mvc на стороне клиента, такие как нокаут или угловые. Они автоматически обновляют dom, и в большинстве случаев скорость там не беспокоится (есть случаи, когда многие/тысячи элементов замедляют ее). –

+0

Трудно ответить на то, что лучше в вашем случае, не зная больше об использовании и объеме. Иди со своими кишками - какое решение заставляет тебя чувствовать себя хорошо? :) –

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