|
|
|
| Вопрос
Если использовать дополнительные (свои) атрибуты в HTML тегах то несет ли это для функциональности страницы какие то потенциальные опасности кроме просто не соответствия стандартам?
например
<div newAttribute="{a:1,b:2}"></div>
|
Зачем нужно - что бы как то передать дополнительную информацию привязанную к html элементу с сервера в javascript | |
|
|
|
|
|
|
|
для: kirillKiev
(16.02.2009 в 14:49)
| | Всё нормально. Только я бы так делать не рекомендовал, лучше сделать глобальный массив с нужными данными, примерно так:
<script>
var arrData = [];
function aaa() {
alert(arrData);
}
aaa();
</script>
|
ЗЫ. Кстати, если уже затрагивать тему стандартов, то хочу заметить, что это всего лишь рекомендации для разработчиков браузеров, сами стандарты задают браузары, а не w3c, это следует помнить. | |
|
|
|
|
|
|
|
для: Lelik
(16.02.2009 в 15:51)
| | Спасибо за ответ.
Что бы делать глобальный массив буду вынужден цеплять уникальные id на все нужные элементы (а их может быть тысячи) что бы потом как то привязацца, а в таком варианте не нужно. Можно потом перебрать элементы например по имени класса или как то по другому и понавешивать все что нужно (например события).
И вопрос...
:)
почему все таки если "все нормально" => "делать так не рекомендовал"
ход мысли какой? | |
|
|
|
|
|
|
|
для: KirillKiev
(16.02.2009 в 15:57)
| | потому, что вынимаю подобную инструкцию из аттрибута:
<div newAttribute="{a:1,b:2}"></div>
|
придется применять eval, что работает разков в 10—100 медленней чем напрямую к массиву обращаться... | |
|
|
|
|
|
|
|
для: Lelik
(16.02.2009 в 16:22)
| | возможно.... но без eval, особенно с AJAX очень проблематично
так что от eval все равно никуда...
еще можно разобрать эту строку в массив и обойтись без eval | |
|
|
|
|
|
|
|
для: KirillKiev
(16.02.2009 в 16:33)
| | вот хорошая статья по теме. в смысле по теме быстродействия :) | |
|
|
|
|
|
|
|
для: Lelik
(16.02.2009 в 17:10)
| | Спасибо за ссылку
Ну... из всей статьи действительно по тему только
>>
var propertyName = "value";
eval("obj." + propertyName + "= 1")
выполняется в 10—100 раз дольше, чем
obj[propertyName] = 1
<<
это как раз понятно
остальное известно.. | |
|
|
|
|
|
|
|
для: KirillKiev
(16.02.2009 в 16:33)
| | но без eval, особенно с AJAX очень проблематично
смотря что, если передавать массив можно просто обойтись разделителем и уже на выходе разбивать в массив. | |
|
|
|