Zbyszek Tenerowicz
meet.js 12.10.2011
Znaj swoje selektory
$('.klasa');$('#id .klasa');$('div#id');$('#id'); $('ul>li'); //li w tym ul, ale żadne poniżej
Ceń swoje selektory
$('a.klasa').attr('src','http://html5rocks.com'); $('a.klasa').show();//chaining $('a.klasa').attr('src','http://html5rocks.com').show(); //zachowanie selektora na później var $klasa=$('a.klasa'); $klasa.attr('src','http://html5rocks.com'); ... $klasa.show();
$(this) nie jest za darmo
$('whatever').click(function(){ this.id="noweid"; //można tak! var $t=$(this); //keszuj $(this) $t.children().hide(); $t.addClass('small'); });
.live() jest fajne.
.delegate() jest fajne.
.on() jest fajne.
var node=document.createElement('div'); var p=document.createElement('p'); node.appendChild( p ); var tam=document.getELementById('#tu'); tam.insertBefore( node, tam.firstChild );
jQuery też to umie, jeśli nie piszesz od razu po dokumencie
var p=$('<p>'); var div=$('<div>'); for(var i=0;i<100;i+=1){ div.append(p); } div.prependTo($('#tu'));
//pożyczone z http://ejohn.org/blog/dom-documentfragments/ //elems zawiera kilka węzłów DOM var div = document.getElementsByTagName("div"); var fragment = document.createDocumentFragment(); for ( var e = 0; e < elems.length; e++ ) { fragment.appendChild( elems[e] ); } for ( var i = 0; i < div.length; i++ ) { div[i].appendChild( fragment.cloneNode(true) ); }
a.push(x) > a[]=x > a[a.length]=x
[].join()
zamiast iterowania, gdy tylko się da
for(var i=0,l=dane.length;i<l;i+=10){ dane[i]; dane[i+1]; ... dane[i+9]; } //tu jeszcze trzeba zrobić coś z resztką
var int8 = new Uint8Array(length); var int32 = new Uint32Array(length); var float32 = new Float32Array(length); var float64 = new Float64Array(length);
A zaczęło się na Falsy Values...
function a(preheat){ if(preheat){return} //heavy stuff } for(var i=0;i<10000;i+=1){ a(true) }
function aaa(){ zrobKawalek(); setTimeout(aaa,0); //no ale zero, nie? }
window.performance={ "memory":{"totalJSHeapSize":0,"usedJSHeapSize":0,"jsHeapSizeLimit":0}, "timing":{ "connectStart":1318196180004, "responseStart":1318196180108, "domLoading":1318196180119, "connectEnd":1318196180004, "domInteractive":1318196180758, "fetchStart":1318196180000, "secureConnectionStart":0, "domainLookupStart":1318196180000, "responseEnd":1318196180420, "requestStart":1318196180005, "loadEventEnd":1318196181001, "domComplete":1318196181000, "redirectStart":0, "unloadEventEnd":0, "domContentLoadedEventStart":1318196180758, "domContentLoadedEventEnd":1318196180758, "domainLookupEnd":1318196180000, "navigationStart":1318196180000, "unloadEventStart":0, "loadEventStart":1318196181001, "redirectEnd":0 }, "navigation":{"redirectCount":0,"type":0} }