jsBenchmarker
Source of "jquery_dispose"
Back
/**
* @include jquery_dispose
* @require jquery
*/
(function( $ ){
function bindAll(){
$('*').each(function( i ){
if( i % 3 == 0 )// each three elements
$(this).bind('change foo bar', function(){}).data('cucu', {});
});
var a = 1;
};
var dummy = {};
$.data( dummy );
for( var expando in dummy ) break;
function each_bound( node, fn ){
node = node || document;
var nodes = node.getElementsByTagName('*'),
index = nodes.length,
events;
nodes[ index ] = node;
do{
node = nodes[ index ];
if( node && node.nodeType == 1 && node[ expando ] && ( events = $.data(node, 'events') ) )
fn( node, events );
}while( index-- );
};
function my_dispose(){
each_bound( document, function( node ){
$.event.remove( node );
$.removeData( node );
});
};
function jq_dispose(){
// adding removeData
$("*").add(document).unbind().removeData();
};
var fns = [
bindAll,
function(){
Benchmarker().run( 1, my_dispose, 'my_dispose', true );
},
bindAll,
function(){
Benchmarker().run( 1, jq_dispose, 'jq_dispose', true );
}
];
function run(){
var fn = fns.shift();
if( fn ){
setTimeout(function(){
fn();
run();
}, 500 );
}
};
run();
})( jQuery );