mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 16:29 Benutzername: Passwort: Auto-Login

Thema: Hohe CPU-Auslastung durch Javascript vom 12.06.2012


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Hohe CPU-Auslastung durch Javascript
Seite: 1, 2  Weiter
Autor Nachricht
Sp3C
Threadersteller

Dabei seit: 11.09.2008
Ort: -
Alter: 32
Geschlecht: Männlich
Verfasst Di 12.06.2012 13:42
Titel

Hohe CPU-Auslastung durch Javascript

Antworten mit Zitat Zum Seitenanfang

Hallo,

ich habe ein Script in PHP geschrieben welches Informationen aus einer CSV-Datei ausliest und in mehreren Tabellen untereinander ausgibt.

Jeder dieser Tabelle ist mit einem HTML-Anker versehen, damit hin- und hergescrollt werden kann.

Nun habe ich für diese Aufgabe ein Javascript geschrieben.
Das Script ruft mit einer Wartezeit von 10 Sekunden den nächsten Anker auf und aktualisiert die Seite wenn der letzte Anker erreicht ist.

Nun sorgt dieses Script allerdings dafür, dass die CPU-Last bei ca. 50% liegt und er IE bzw. Firefox nicht mehr reagiert.

Kann einer vor euch die Ursache erkennen ? * Keine Ahnung... *

Code:

function warten(prmSec)
  {
  prmSec *= 1000;
  var eDate = null;
  var eMsec = 0;
  var sDate = new Date();
  var sMsec = sDate.getTime();

  do {
      eDate = new Date();
      eMsec = eDate.getTime();

  } while ((eMsec-sMsec)<prmSec);
}


// Funktion zum Reload

function reloader(){
   location.reload();
}

var max_seiten = <?php echo $seite_gesamt;?>;
var seite = 1;
   function blaettern(){
      while (seite <= max_seiten) {
      warten(10);
      window.location.href = "#"+seite;
      seite++;
     }
     warten(10);
     reloader();
   }   


Gruß
Sp3C
  View user's profile Private Nachricht senden
Alex

Dabei seit: 29.11.2005
Ort: Dortmund
Alter: 37
Geschlecht: Männlich
Verfasst Di 12.06.2012 13:47
Titel

Antworten mit Zitat Zum Seitenanfang

Rein aus interesse, wieso schreibst du dir deine Timeout-Funktion selbst, statt setTimeout() zu benutzen?

Leider sehe ich auf Anhieb auch nicht die Ursache für dein Problem..
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Sp3C
Threadersteller

Dabei seit: 11.09.2008
Ort: -
Alter: 32
Geschlecht: Männlich
Verfasst Di 12.06.2012 13:49
Titel

Antworten mit Zitat Zum Seitenanfang

Alex hat geschrieben:
Rein aus interesse, wieso schreibst du dir deine Timeout-Funktion selbst, statt setTimeout() zu benutzen?

Leider sehe ich auf Anhieb auch nicht die Ursache für dein Problem..


Das Problem bei setTimeout() ist doch das ich damit meine while-Schleife nicht anhalten kann oder verstehe ich da etwas falsch ?
  View user's profile Private Nachricht senden
Alex

Dabei seit: 29.11.2005
Ort: Dortmund
Alter: 37
Geschlecht: Männlich
Verfasst Di 12.06.2012 14:08
Titel

Antworten mit Zitat Zum Seitenanfang

Ah, das wusste ich nicht, aber ist ein Grund.

Mal eben schnell gegoogled ist wohl für loops statt settimeout setinterval zu gebrauchen:
http://www.sitepoint.com/forums/showthread.php?553004-slowing-a-while-loop-setTimeout-doesn-t-work
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Sp3C
Threadersteller

Dabei seit: 11.09.2008
Ort: -
Alter: 32
Geschlecht: Männlich
Verfasst Di 12.06.2012 14:28
Titel

Antworten mit Zitat Zum Seitenanfang

Alex hat geschrieben:
Ah, das wusste ich nicht, aber ist ein Grund.

Mal eben schnell gegoogled ist wohl für loops statt settimeout setinterval zu gebrauchen:
http://www.sitepoint.com/forums/showthread.php?553004-slowing-a-while-loop-setTimeout-doesn-t-work


Damit läuft es endlich, vielen Dank!!

Ich habe diese Lösung trotz ewigem überlegen und googlen nicht gefunden, jetzt liegt die CPU-Last bei 1% bzw. 4% bei laden Grins
  View user's profile Private Nachricht senden
Alex

Dabei seit: 29.11.2005
Ort: Dortmund
Alter: 37
Geschlecht: Männlich
Verfasst Di 12.06.2012 14:33
Titel

Antworten mit Zitat Zum Seitenanfang

Ich würde vermuten, dass das Problem in deiner selbstgebauten Timeout funktion lag.

Die while schleife hat alle paar Millisekunden geprüft ob die 10 Sekunden schon rum sind, und das ist halt ne Menge Holz, das im Hintergrund gefällt wird Grins


Zuletzt bearbeitet von Alex am Di 12.06.2012 14:33, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
phihochzwei
Moderator

Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht: Männlich
Verfasst Di 12.06.2012 15:28
Titel

Antworten mit Zitat Zum Seitenanfang

Nachdem ich das gelesen habe, möchte ich mich wimmernd in der Dusche in Fötalhaltung zusammenrollen.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
phihochzwei
Moderator

Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht: Männlich
Verfasst Di 12.06.2012 18:17
Titel

Antworten mit Zitat Zum Seitenanfang

Alex hat geschrieben:
Hm... bezüglich meines Tips oder des Ausgangsposts?


Wenn das wegen deines Posts wäre, dann müsste ich deinen Arbeitsvertrag noch mal überdenken *zwinker*

BTW.: Wohnung gefunden ????
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen Flash udn CPU Auslastung
100% hohe Tabellen im IE
100% hohe DIV-Ebenen im Internetexplorer
Tabelle eine 100% Hohe zuweisen
GIF-Onlinebanner. Wodurch entsteht die hohe Dateigröße ?
phpBB, Auslastung und "sprechende URLs"
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.