jQuery Performance problem

DiDiJo

Erfahrenes Mitglied
Hi Leute,

ich bin gerade dabei mir ein kleines Mini CMS aufzubauen. Mein Ziel ist es, dass nachdem Aufruf der Seite kein reload mehr stattfindet, sondern sämtliche Anfrage und Aufrufe per Ajax verarbeitet werden. Das ganze läuft auch soweit ganz rund, aber nach einer gewissen Zeit merke ich, dass die ganze Seite sehr speicherlastig wird und der FF ins ruckeln gerät.

Zum Nachladen meiner Elmente und Module nutze ich folgende Funktion:

Code:
function loadPageModul(cmsModule,target,moduleFolder,hashChange, callback) {	
	[...]
	$('#cmsContentLoader').show();		
	$.ajax({
		url: "/inc/modules/ajax.functions.php",
		type: "POST",		
		data: "action=checkExistingModule&module="+checkData,	// Modul verfügbar	
		success: function (status) {
			if (status == 1) {				
				$(target).fadeOut(300,function(){
					$(target).load(cmsModule, function(response, status, xhr) {
						$(target).fadeIn(300,function(){
							makeJQueryCalls(target);	// Initialisier basics (siehe unten)
							if (hashChange) {				
								pageurl = basename(cmsModule);
								window.history.pushState({path:pageurl},'',pageurl);	// um die URL abzuändern				
							}
							$('#cmsContentLoader').hide();	
							if (typeof(callback) === 'function') {
								callback();	// callback
							}
							allowToLoad = true;
						});
					});
				});
			} else {
				// fallback
			}
		}
	});	
}


Die makeJQueryCalls() initialsiert alle möglichen CSS/Style angaben auf der seite bzw. dem frisch geladenem modul.
Hier ein kleiner Auszug:
Code:
        $(cssPrefix+'.arrow').each(function(){
		content = $(this).html();
		if (!strpos(content,"arrowContainer")) {
			defaultClass = 'arrowLeft';
			if ($(this).hasClass('up')) arrowClass = 'arrowUp';
			else if ($(this).hasClass('down')) arrowClass = 'arrowDown';
			else if ($(this).hasClass('left')) arrowClass = 'arrowLeft';
			else if ($(this).hasClass('right')) arrowClass = 'arrowRight';
			else arrowClass = defaultClass;		
			newContent = '<span class="arrowContainer '+arrowClass+'">'+content+'</span>';
			$(this).html(newContent)
		}
	});

Nun kann es sein das vlt. das ein oder andere Element doppelt initialisiert wird. Kann das die Performance so beinträchtigen oder geh ich allgemein falsch an die sache ran ?!
 

Neue Beiträge

Zurück