cache you objects :
$('#id').show();
...
$('#id').remove();
better :
var $block = $('#id');
$('#id').remove();
Don't manipulate too much the DOM :
for (var i=0; i<=5000; i++)
{
$('<div></div>').appendTo('body');
}
better :
var $wrapper= $('<div></div>');
for (var i=0; i<=5000; i++)
{
$('<div></div>').appendTo($wrapper);
}
$wrapper.appendTo('body');
(better solution : do not create objects in the loop but a long string then use $('body').html(string);
Use custom events and bind them to dom elements :
var $myDiv = $('<div></div>').bind('contentUpdate', function() { // hello! });
...
$myDiv.trigger('contentUpdate');
...
$myDiv.remove();
=> all event observers removed, mem is free ! :)
Learn .end(); :
var $myDiv = $('#id');
myDiv
.find('.className')
.show();
myDiv.css('top', 0);
better :
myDiv
.find('.className')
.show()
.end() // go back to myDiv !
.css('top', 0);
**Use jQuery document ready wrapper : (+$ obfuscator) **
(function($){
// $ is protected
jQuery(function(){
// all code here will be executed at DOM ready
}
})(jQuery);
etc
HF