performance - JavaScript/MooTools - Better to save element in object property vs. accessing each time with $('elem')? -
in terms of speed/memory efficiency, make sense save element (retrieved via $) variable in object or use $ access each time?
does accessing object properties (especially if nested few levels - object within object) perform faster using $?
caching selectors used idea. namespacing behind several levels deep object creates longer neccessary global scope chain, imo. tend cache selectors within simple closures or via using mootools' element storage.
for example, if have link in div locates parent, finds 2 elements down , first img , can see user clicking multiple times, can this:
document.id("somelink").addevent("click", function() { var targetimg = this.retrieve("targetimg") || this.store("targetimg", this.getparent().getnext().getnext().getelement("img.close")); targetimg.fade(.5); ... });
on first click target img , store under link's storage key targetimg
, subsequent clicks use stored reference. mootools' storage created @ time of extending of element , assignment of uid. simple object behind closure it's not within proprietary property on element slow down access in ie etc , it's not in window. property.
when consider philosophy of mootools coding in general - i.e. code class - there few things (un)written best practices when writing mootools class/plugin.
if pertains single element, set this.element = document.id(element);
- store reference. if it's array, caching this.elements = document.getelements(this.options.selector);
so, store reference main selector.
Comments
Post a Comment