Система HTML / Javascript для множества разных всплывающих окон и виджетов на одной странице - PullRequest
1 голос
/ 01 апреля 2012

Я делаю HTML5-страницу (игру), которая использует множество всплывающих окон и все виды виджетов, появляющихся и исчезающих на одной странице.

Для реализации этого я мог бы

  • Сделайте все всплывающие окна и виджеты, перечисленные на странице, невидимыми (как и многие примеры, которые я видел), и продолжайте переключать только видимость.

  • Добавляйте и удаляйте динамически, используя Javascript,Я мог бы поместить каждое всплывающее окно как фрагмент HTML в отдельный файл (?).

Секунды являются "модульными", и мне нравится тот факт, что у меня нет элементов на странице, которые я 'Я не пользуюсь на самом деле.Но я не знаю о производительности (загрузка HTML каждый раз, вставка DOM и т. Д.).

Есть ли предпочтительный / стандартный способ сделать это?

1 Ответ

0 голосов
/ 01 апреля 2012

Если мы говорим о загрузке HTML с сервера, то, очевидно, это будет неэффективно.

Я не знаю, какую игру вы пишете, но я не думаю, что будет какая-либо видимая разница в производительности (за исключением загрузки данных с сервера), если вы не создадите тысячи всплывающих окон в секунду (я сомневаюсь в этом) , Давайте будем честными - ваша игра не использует 4 ГБ памяти. :) А если это так, то вы, вероятно, делаете что-то не так. И я не думаю, что есть какой-либо стандартный способ. Это больше похоже на то, как ты это чувствуешь. :)

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

С другой стороны, если у меня есть, например, блог с обсуждением, и я загружаю некоторые дополнительные данные (например, данные пользователя, которые должны отображаться в виде всплывающего окна после нажатия на имя пользователя), я склонен хранить их в DOM элементы, потому что это легче (по крайней мере для меня) управлять им (я говорю о jQuery и jQuery UI).

Обратите внимание, что повторное появление всплывающих окон может привести к утечкам памяти, но маловероятно, если вы используете какую-то популярную библиотеку, например (например) jQuery UI.

...