Javascript原型实用程序方法与参考性能
嗨,伙计们,我有个问题 我正在努力寻找性能方面最有效的方法来存储和访问javascript原型库中的元素 假设我在测试类中动态创建了一个具有子元素的父元素Javascript原型实用程序方法与参考性能,javascript,performance,optimization,prototypejs,Javascript,Performance,Optimization,Prototypejs,嗨,伙计们,我有个问题 我正在努力寻找性能方面最有效的方法来存储和访问javascript原型库中的元素 假设我在测试类中动态创建了一个具有子元素的父元素 testclass = Class.create({ newParent: null, //I will create a global reference to the parent element method1: function(){ this.newParent = new Element('div',{
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
我一直在思考,以下是我的不同解决方案
elm1: null,
....
method2: function(){
this.elm1
}
this.newParent.down('[identifier=elm1identifier]');
谢谢大家的帮助。如果您正在创建一个应该表示DOM元素的对象,那么给它一个引用元素的属性,比如“元素”,似乎是明智的。然后在方法1中: 我认为在这个阶段,性能的微观优化是毫无意义的,因为性能的最大改进是不使用Prototype.js $()方法首先是document.getElementById的别名(在浏览器中速度非常快,一直如此),其次是向返回的元素添加方便的方法。如果浏览器没有实现基于原型的继承方案,Prototpye.js将大约50个方法作为属性直接添加到元素中,这是一个非常昂贵的操作 我怀疑存储对元素的引用会导致严重的内存问题,除非您存储了成千上万个元素而没有使用它们(它们毕竟只是引用) 使用唯一的自定义标识符 也不错,但你也添加了新的 可能产生影响的属性 关于dom本身
不要向DOM元素添加自定义属性或属性。Prototype.js 2.0版终于脱离了这个模型,只是不要这样做。如果您有一个表示(或“包装”)元素的对象,请将属性添加到该对象。因此,如果必须在引用和使用$()之间进行选择,哪一个更有效?您说过性能的最大改进是不使用prototype.js?这是否意味着使用本机javascript而不是框架将显著提高性能?谢谢你的回答。一般来说,引用会更快,但可能不会太快。$()的问题在于,它的行为不适用于未实现DOM元素原型继承的浏览器。POJ可以带来显著的性能优势,但同样,除非进行大量处理,否则您可能不会注意到。
this.newParent.down('[identifier=elm1identifier]');
this.element = elm;