Javascript zu langsam für sekündliche Aktualisierung?
Schronk
- javascript
0 Struppi0 Bert Randolf
Hallo zusammen,
ich habe ein Page, die auf einem Gerät liegt welches eine SPS (Speicher programmierbare Steuerung) beinhaltet. Ich kann Werte aus dieser SPS Abfragen, genauer gesagt Bytes und Words. Das geschieht über ein Java-Aplett. (z.B....aplettname.ReadWord (18)) Diese nutze ich um eine Darstellung der SPS-Anlage in HTML zu machen. Ich habe Bilder der jeweiligen Zustände (jpg) die ich per Switch-Funktion ändern will. Nur leider ist die Aktualisierung auf der Webpage so langsam, das die Webseite die Zustände nicht schnell genug darstellen kann. Die Reihenfolge und Sprünge im Javascript hab ich auch schon verändert, ohne Erfolg.
Hat jemand evtl einen Tipp für mich?
Javascript Beispiel 1 (mit Sprünge und Variablen):
function Floor4 ()
{
WordSwitch (24,0)
setTimeout("Floor4 ()", 100)
}
///
function ChangeImg (ImgNr,ImgSrc)
{
document.images[ImgNr].src = ImgSrc.src;
}
///
function WordSwitch (FloorWord,Floor)
{
Word=AnyBus.ReadDPRAMWord(FloorWord);
switch (Word)
{
case 1040:
ChangeImg (Floor,Down);
break;
case 1042:
ChangeImg (Floor,DownRed);
break;
case 528:
ChangeImg (Floor,MidClosed);
break;
Javascript Beispiel 2 (ohne Sprünge und minimalen Variabeln):
function WordSwitch ()
{
Word18=AnyBus.ReadDPRAMWord(18);
switch (Word18)
{
case 1040:
document.images[3].src = Down.src;
break;
case 1042:
document.images[3].src = DownRed.src;
break;
case 528:
document.images[3].src = MidClosed.src;
break;
case 530:
document.images[3].src = MidClosedRed.src;
break;
case 272:
document.images[3].src = Up.src;
Hat jemand evtl einen Tipp für mich?
Ich glaub kaum das es am JS liegt, das Laden und Darstellen eines Bildes dauert mit Sicherheit länger als ...
Javascript Beispiel 1 (mit Sprünge und Variablen):
function Floor4 ()
{
WordSwitch (24,0)
setTimeout("Floor4 ()", 100)
100 Millisekunden.
D.h. nicht JS ist zu langsam sondern der Browser bzw. die Übetragung (das hängt natürlich noch davon ab was für ein Protokoll du verwendest)
Struppi.
100 Millisekunden.
D.h. nicht JS ist zu langsam sondern der Browser bzw. die Übetragung (das hängt natürlich noch davon ab was für ein Protokoll du verwendest)
100 ms sind 1 sec und ich hoffe doch, dass ein Browser schnell genug ist innerhab von einer sekunde ein Bild durch ein anderes auszutauschen - bei einer Anbindung von 100 MBit?
Gruß
Schronk
hi,
100 ms sind 1 sec
nein, das sin 0,1 sec
gruß,
wahsaga
Hallo Schronk
100 Millisekunden.
D.h. nicht JS ist zu langsam sondern der Browser bzw. die Übetragung (das hängt natürlich noch davon ab was für ein Protokoll du verwendest)
100 ms sind 1 sec und ich hoffe doch, dass ein Browser schnell genug ist innerhab von einer sekunde ein Bild durch ein anderes auszutauschen - bei einer Anbindung von 100 MBit?
100 ms sind 0.1 Sekunden
Aber wie gesagt, er muss die Datei übertragen UND darstellen. du kannst davon ausgehen, das das in der Regel nicht in einer Sekunde klappt.
Du verwechselst einen Browser mit einem Bildbetrachter. Ein Browser muss wesentlich mehr können als ein Bild darstellen insofern wird in so einem falle sicher einiges mehr passieren
JS parsen, ausführen (inkl. einer Menge an Fehlerprüfungen)
Verbindung testen, herstellen, daten übetragen, feststellen was für Daten
Bilddaten zusammenführen, in Bitmap umwandeln
Bild im dokument finden, bitmaps austauschen, Seite updaten.
(und das ist bestimt unvollständig, da ich nicht die interna von browsern kenne)
Das alles wird sicher sehr schnell gehen, aber da ist doch eine Menge Arbeit dahinter.
Struppi.
Gut, den Teil akzeptiere ich ja. Okay, mit den 100 ms war etwas dämlich - aber egal. Ich hab jetzt alle Bilder von 45k auf 2 k runtergerippt und die Zeitspanne auf 2,5 sec (ja, 2500 :)) hochgesetzt. Aber eine Veränderung ist dabei nicht zu sehen. Gibt es denn sonst nichts was ich machen kann, um das ganze zu beschleunigen?
Hallo Schronk,
Aber eine Veränderung ist dabei nicht zu sehen. Gibt es denn sonst nichts was ich machen kann, um das ganze zu beschleunigen?
Du könntest dafür sorgen, dass zum Zeitpunkt des Bildwechsels die Bilder sich schon vollständig im Browsercache befinden. Wie du das machst ist dir überlassen, du könntest beispielsweise die Bilder irgendwo auf der Seite verstecken oder sie mit Javascript vorladen.
MfG, Mülli
Hallo,
ich habs nun. Es lag daran, dass der Laptop zu schwach auf der Brust war und das andere was ich noch machen werde, ist mit Layern zu arbeiten. Dann hab ich alle Bilder auf der Page und kann sie so schalten wie ich sie brauche. Der Grund dafür ist, dass sonst bei 1sec Aktualisierung das Ganze sonst schon als "Böswilliges zumüllen eines Netzwerkes" gesehen werden kann...
Danke :)
Hallo,
kannst du das wahrnehmen, wenn sich das Bild alle 0.1s austauscht?
ich nicht.
wenn du wirklich auf diese kurze zeitspanne angewiesen bist, so mach doch eine
legende und ersetze die bilder durch zeichen, so musst du immer nur die zeichen ersetzen, das geht schnell, und anhand der legende kannst du erkennen, was die zeichen bedeuten
also zeichen=bild.
Bert