StechusKaktus
New member
Hi jswelt Community,
ich habe mal eine Frage zu der Performance von JavaScript und z.B. das durchlaufen von Schleifen.
Ich möchte gerne die bestmögliche Leistung erhalten (und natürlich sauber Arbeiten) und wollte mal fragen,
wie man am besten in JavaScript seinen Code schreibt?!
Zum Beispiel habe ich hier einen Code Abschnitt, der bei jeder Bewegung immer bestimmte Position updaten soll.
Nun habe ich so mehrere "gleichzeitige" eingaben von Positionen. Wie könnte ich diesen Ablauf in der Schleife verbessern?
Was könnte man evtl. verbessern, damit der hier vorliegende Beispiel Code verbessert wird?
Hättet ihr da Tipps für mich?
Des Weiteren frage ich mich, wie es sich hier mit den Schleifen verhält?
Ist das effizient gestaltet?
Dieser Code soll einfacher verdeutlichen, wie der "Große" Codeabschnitt hier drüber abläuft.
Kann man hier noch Leistung herauskitzeln damit wirklich alles smooth abläuft?
Vielen Dank für eure Hilfe und Tips.
ich habe mal eine Frage zu der Performance von JavaScript und z.B. das durchlaufen von Schleifen.
Ich möchte gerne die bestmögliche Leistung erhalten (und natürlich sauber Arbeiten) und wollte mal fragen,
wie man am besten in JavaScript seinen Code schreibt?!
Zum Beispiel habe ich hier einen Code Abschnitt, der bei jeder Bewegung immer bestimmte Position updaten soll.
Nun habe ich so mehrere "gleichzeitige" eingaben von Positionen. Wie könnte ich diesen Ablauf in der Schleife verbessern?
Code:
this.updatePositions = function( updatePos ){
var positionX = updatePos.getScreenX( screenW ) + 1920;
var positionY = updatePos.getScreenY( screenH ) + 720;
var newPosition = new Point( positionX, positionY );
var elementArray = mtt_obj.Elements;
var tArrayLength = elementArray.length;
for( var i = 0; i < tArrayLength; i++ ){
if( updateCursor.cursorId == elementArray[i][0] ){
var tElement = elementArray[i];
var tElement1 = elementArray[i][1];
tElement1.position = newPosition;
if( tElement1.data.type == 'obj' || tElement1.data.type == 'desc' ){
// ...do something.
for ( var i = 0; i < el_items.length; i++ ){
if( tElement1.data.SID == el_items[i][0] ){
for( var j = 1; j < el_items[i].length; j++ ){
// ...do something.
}
break;
}
}
if( max_menus > 1 ){ /* ... do something... */ }
return;
}
if( tElement1.data.type == 'rel' ){
// ...do something.
return;
}
var range = newPosition.getDistance( tElement[2] );
if( range > 40 ){
// ...do something.
}
var diff = mtt_obj.onFrameCount - tElement[3];
if( diff > 50 ){
if( range <= 5 ){
if( typeof ElementArray[i][4] == 'undefined' ){
// ...do something.
return;
}
} else if( typeof ElementArray[i][4] != 'undefined' ){
// ...do something.
return;
}
}
return;
}
}
}
Was könnte man evtl. verbessern, damit der hier vorliegende Beispiel Code verbessert wird?
Hättet ihr da Tipps für mich?
Des Weiteren frage ich mich, wie es sich hier mit den Schleifen verhält?
Ist das effizient gestaltet?
Code:
var array = [ "el1", "el2",..., "n" ];
var arrayLength = array.length;
for( var i = 0; < arrayLength; i++ ){
var arrayPos = array[i];
arrayPos.irgendwas
tue_noch_was( arrayPos );
// ... und so weiter.
if( array Pos < 100 ){
// mache wieder was usw.
for(...)...
}
}
Dieser Code soll einfacher verdeutlichen, wie der "Große" Codeabschnitt hier drüber abläuft.
Kann man hier noch Leistung herauskitzeln damit wirklich alles smooth abläuft?
Vielen Dank für eure Hilfe und Tips.