Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / хороший тон при добавлении элемента / 15 сообщений из 15, страница 1 из 1
06.08.2013, 11:10
    #38356225
kaldorey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хороший тон при добавлении элемента
Являюсь не слишком искушенным кодером в веб. Чтобы ответить самому на следующие вопросы, необходимо прочитать тонну книг, и то не факт, что сделаю правильный вывод.

Есть пользователь, которому я на сервисе добавляю кнопку на определенной странице. То есть для других пользователей этой кнопки нет. По нажатию этой кнопки должен выскочить блок с некоторой таблицей и кнопками да-нет.
Как реализовал я сам: кнопка рисуется при формировании HTML-страницы с уже назначенным onClick. Также чуть раньше при формировании в зависимости от пользователя загружается скрипт с функционалом для этой кнопки. А вот стили я дописал в общий файл. Создание невидимого DIV сделал как
Код: javascript
1.
2.
3.
4.
5.
(function createDiv(name){
        var newDiv = document.createElement('div');
	newDiv.id = name;
	document.body.appendChild(newDiv);
})('MyDiv')


На что IE версии 8 стал ругаться "HTML parsing error". Это решается обновлением Винды KB2792100. Но мне показалось это неправильным. В итоге ошибки удалось избежать, выполнив createDiv в конце BODY. И тут я озадачился. onDOMContentLoaded кроссбраузерно описывать довольно много для простого события, а создавать div каждый раз по нажатию кнопки как-то медленно будет, быстрее видимым невидимым сделать. Думаю просто оставить так как есть в конце BODY - хоть и не эстетично, но быстро и везде работает. Хочется сделать, чтобы работало быстро, компы у многих пользователей откровенно слабые, и любое замедление сразу видно.

И теперь главный вопрос. Как все сделать по хорошему и что является "хорошим тоном" для таких ситуаций? Функционал кнопки и стили в отдельные файлы и загружать непосредственно перед кнопкой? На каком моменте создавать элемент? Распишите пожалуйста немножко. Очень хочется создавать такой сервис, который по быстроте почти не уступает десктопу. А для этого надо знать как лучше поступать в подобных ситуациях.
...
Рейтинг: 0 / 0
06.08.2013, 12:44
    #38356432
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хороший тон при добавлении элемента
kaldoreyПо нажатию этой кнопки должен выскочить блок с некоторой таблицей и кнопками да-нетЯ для этого использую jQuery UI (а именно dialog)
Является ли это хорошим тоном - я не знаю
...
Рейтинг: 0 / 0
06.08.2013, 12:57
    #38356462
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хороший тон при добавлении элемента
kaldoreyа создавать div каждый раз по нажатию кнопки как-то медленно будет, быстрее видимым невидимым сделать.можно при первом нажатии создать див (т.е. при условии, что он не создан), а дальше использовать его, меняя видимость.
...
Рейтинг: 0 / 0
06.08.2013, 13:21
    #38356498
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хороший тон при добавлении элемента
Что вообще такой синтаксис значит?
Код: javascript
1.
(function (){})('MyDiv')
...
Рейтинг: 0 / 0
06.08.2013, 13:26
    #38356503
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хороший тон при добавлении элемента
...
Рейтинг: 0 / 0
06.08.2013, 13:27
    #38356506
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хороший тон при добавлении элемента
GustlyЧто вообще такой синтаксис значит?
Код: javascript
1.
(function (){})('MyDiv')


Выполнение анонимной функции с передачей ей параметра...
...
Рейтинг: 0 / 0
06.08.2013, 15:13
    #38356762
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хороший тон при добавлении элемента
Это я так понимаю делается, когда надо функцию единожды вызвать и потом она память за собой освободит? Или еще для чего?
...
Рейтинг: 0 / 0
06.08.2013, 15:14
    #38356767
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хороший тон при добавлении элемента
1) не загрязнять глобальный контекст
2) этакий заменитель with
3) за память не скажу
...
Рейтинг: 0 / 0
06.08.2013, 15:25
    #38356794
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хороший тон при добавлении элемента
Gustlyи потом она память за собой освободит?не всю.
переменные, которые будут упоминаться в замыканиях, не освободятся.
пример:
Код: javascript
1.
2.
3.
4.
5.
6.
(function() {
	var x = 2;
	var y = 3;
	...
	div1.onclick = function() { ... x ...};
})();


здесь на некий элемент вешается обработчик, который захватывает (механизм "замыкания") переменную "х". Т.е. она останется жить после завершения этой внешней функции. А вот "y" уничтожится. Сказанное можно проверить в отладчике.

А если бы в функции div1.onclick использовался eval(...) , то сохранились бы обе переменные, т.к. в строке для евала может упоминаться любая из них.
...
Рейтинг: 0 / 0
06.08.2013, 15:33
    #38356807
kaldorey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хороший тон при добавлении элемента
Спасибо за ответы. А со скриптами и стилями как быть? Отдельными файлами для этой кнопки? Или все в общий пихать?
...
Рейтинг: 0 / 0
06.08.2013, 15:36
    #38356815
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хороший тон при добавлении элемента
kaldoreyСпасибо за ответы. А со скриптами и стилями как быть? Отдельными файлами для этой кнопки? Или все в общий пихать?
Я бы наверное в свойство style кнопки запихал, раз она редко появляющаяся, дабы "обычных" не смущать.
...
Рейтинг: 0 / 0
06.08.2013, 15:44
    #38356839
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хороший тон при добавлении элемента
kaldoreyА со скриптами и стилями как быть? Отдельными файлами для этой кнопки? Или все в общий пихать?скрипт вроде уже используется - например, тот, который создает кнопку. Отдельно не надо.

Насчет стилей - тут можно по разному смотреть. Есть стили чисто оформительские-дизайнерские, всякие там цвета, шрифты, паддинги, бордер-радиусы - их однозначно в css вместе со всеми. А некоторые стили - скорее "функциональные", тот же display, например - он может меняться в коде. Его лучше прямо в style запихнуть.
...
Рейтинг: 0 / 0
06.08.2013, 15:45
    #38356843
kaldorey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хороший тон при добавлении элемента
Gustly, Тут не только кнопка, но и Див со всем содержимым, позиционирование и т.д. Т.е. не пара строк что стиля, что скрипта.
...
Рейтинг: 0 / 0
07.08.2013, 06:56
    #38357677
kaldorey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хороший тон при добавлении элемента
Яростный Меч,

Спасибо.
...
Рейтинг: 0 / 0
07.08.2013, 16:35
    #38358567
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хороший тон при добавлении элемента
Яростный Мечздесь на некий элемент вешается обработчик, который захватывает (механизм "замыкания") переменную "х". Т.е. она останется жить после завершения этой внешней функции. А вот "y" уничтожится. Сказанное можно проверить в отладчике.

убьется, как только GC соберет эту функцию. У тебя в примере она "захвачена" ссылкой от DOM элемента, которую можно позже освободить, но в исходном примере на неё никто не ссылается.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / хороший тон при добавлении элемента / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]