Привет, ребята, у меня вопрос,
Я пытаюсь найти наиболее эффективный с точки зрения производительности способ хранения и доступа к элементу в библиотеке прототипов javascript.
Допустим, ядинамически создать родительский элемент с дочерним элементом в тестовом классе
testclass = Class.create({
newParent: null, //I will create a global reference to the parent element
method1: function(){
this.newParent = new Element('div',{'id':'newParent'});
var elm = new Element('div',
{
'id': 'elm1',
'identifier': 'elm1identifier'
}
);
newParent.insert(elm);
},
method2: function(){
??????????
}
})
В методе 2 я хочу иметь возможность доступа к элементу elm1.
Я думал, и вотмое другое решение.
Я могу получить доступ к элементу, используя служебный метод, предоставленный прототипом $ ()
method2: function(){
$('elm1');
}
Я могу сделатьглобальная ссылка на элемент.
elm1: null,
....
method2: function(){
this.elm1
}
3. Я могу передать элемент в методе в качестве параметра, но эта опция не всегда будет доступна
Я создаю уникальный идентификатор в качестве атрибута и использую функцию прототипа .down
this.newParent.down('[identifier=elm1identifier]');
Так что, конечно, я использую их комбинацию, но мне любопытно, что из вневсе методы, которые являются наиболее эффективными с точки зрения производительности.
Я слышал, что служебный метод $ () ищет весь домен?Это существенная разница?Что делать, если у вас много элементов.
Хранение ссылок на элементы может также вызвать проблемы с памятью, особенно если у вас много javascript на большом веб-сайте.
с использованием уникального и пользовательского идентификаторатоже неплохо, но вы также добавляете новые атрибуты, которые могут влиять на сам домен.Но это преимущество в том, что вы указываете, где вы хотите искать, используя метод element.down () в прототипе.
Спасибо за помощь, ребята.