Latency im IE8 bei sehr vielen (>10000) IFRAMES
mike68
- browser
Hallo Forum,
habe ein Latencyproblem mit IE8 das es vor dem Upgrade aus IE6 nicht gab, zumindest ist es mir nicht so extrem aufgefallen.
Sachlage:
Eine Webseite enthält eine Tabelle. Jeder Zeile zugeordnet ist eine Aktion die über einen Link aufgerufen werden kann und dann in der Zeile in einem IFRAME abläuft. Das ergibt >10.000 IFRAMEs die potentiell auf der Seite sein können.
Jenachdem was in der Seite angezeigt wird können es aber auch nur wenige Zeile sein. Und damit auch wenige IFRAMEs.
Wenn viele IFRAMEs angezeigt werden laufen alle IE8 Sessions die ich habe seeeeehr langsam mit Latency Zeiten von bis zu 30 Sekunden auch für das Schliessen eines Fensters.
Gehe ich recht in der Annahme das die IFRAMEs hier die Ursache sind ? Zumindest kann ich obiges verhalten auf verschiedenen PCs mit verschiedenen Userids reproduzieren.
War das auch im IE6 schon so ??? Wie gesagt, mir ist es nicht aufgefallen, ich vermute dass es nicht so war.
Vielen Dank für alle Antworten.
mike68
Hallo!
Gehe ich recht in der Annahme das die IFRAMEs hier die Ursache sind ? Zumindest kann ich obiges verhalten auf verschiedenen PCs mit verschiedenen Userids reproduzieren.
Wie kommst du auf die Idee, dass circa 10.000 iFrames die Performance des Internet Explorers verschlechtern können?
Und übrigens: LOL iFrames? iFrames are EVIL(tm)!
Liebe Grüße aus Norddeutschland.
Hallo!
Gehe ich recht in der Annahme das die IFRAMEs hier die Ursache sind ? Zumindest kann ich obiges verhalten auf verschiedenen PCs mit verschiedenen Userids reproduzieren.
Wie kommst du auf die Idee, dass circa 10.000 iFrames die Performance des Internet Explorers verschlechtern können?
Und übrigens: LOL iFrames? iFrames are EVIL(tm)!
Liebe Grüße aus Norddeutschland.
Tja ... IFRAMEs waren nicht meine Entscheidung, muss aber damit leben. Ist eine Vorgabe.
Wie gesagt. Mein Problem ist nicht (in erster Linie) OB die IFRAMEs das Problem sind, da bin ich mit relativ sicher das es so ist, sondern ob das im IE8 jetzt verstärkt auftritt.
Da der IE im Task Manager dann auch recht viel CPU Zeit benötigt denke ich, dass er der Reihe nach alle IFRAMEs abfragt ob ein EVENT vorliegt und deswegen meinen Mausklick erst so spät bemerkt.
Die Frage ist also, ob sich hier etwas im IE geändert hat wodurch er jetzt so extrem langsam wird.
Und übrigens: LOL iFrames? iFrames are EVIL(tm)!
Wieso? Sie sind die einzige Möglichkeit mit JS neue Dokumente zu erzeugen und dafür sehr praktisch.
Struppi.
Hi there,
Und übrigens: LOL iFrames? iFrames are EVIL(tm)!
Einige in diesem Forum sind echte Meckerautomaten, die von bestimmten Stichwörtern getriggert werden.
Aus seinen Angaben geht ja wohl schon hervor, daß er keine simple Heimseite bastelt sondern irgendeine Anwendung, die mit einer Menge Daten zu tun hat. Und jetzt erzähl mir bitte genau, warum ein ein Iframe in einer Anwendung etwas schlechtes ist, aber bitte, ohne die Begriffe "Suchmaschine", "leere Seite", "Bookmarking" oder was auch immer zu verwenden, denn das ist in diesem Fall ziemlich irrelevant...
Hallo Forum,
Hallo Framy;
ich darf dich doch so nennen?
Das ist bestimmt eine sehr sinnvolle Anwendung, wenn die 10.000 iFrames benötigt?
Klär uns doch mal auf.
Ein Neugieriger
Hallo Forum,
Hallo Framy;
ich darf dich doch so nennen?Das ist bestimmt eine sehr sinnvolle Anwendung, wenn die 10.000 iFrames benötigt?
Klär uns doch mal auf.
Ein Neugieriger
Klar kannst du dich so nennen. Und das das wohl nicht üblich ist ... ist mir auch klar.
Hintergrund ist, dass eine Datenbank eine Ergebnistabelle liefert die eben soviele Zeilen haben kann. Meist benutzt der User eine andere Sicht mit nur < 10 Zeilen und die läuft auch gut.
Um eine Statuswechsel durchzuführen drückt der User auf einen von mehreren Knöpfen. Jeder Zeile ist ein IFRAME zugeordnet in dem dann die Änderung auf die Datenbank geschrieben wird. Ansonsten zeigt der IFRAME immer nur ein leeres Dokument.
Und ... durch die Art der Technologie die hier eingesetzt wird geht es nicht anders als es über IFRAMEs (oder generell FRAMEs) zu machen.
Habe mir aber einen Workaround überlegt.
Ich lege initial keine IFRAMEs sondern nur leere DIVs an. Per Javascript erzeuge ich dann erst auf den Mausklick genau ein IFRAME in welchem die Aktion abläuft und lösche das anschliessend wieder.
Dafür muss ich aber wissen, dass es wirklich an den IFRAMEs oder an den 10.000 Tabellenrows liegt. Werde das mal austesten.
Mahlzeit mike68,
Um eine Statuswechsel durchzuführen drückt der User auf einen von mehreren Knöpfen. Jeder Zeile ist ein IFRAME zugeordnet in dem dann die Änderung auf die Datenbank geschrieben wird. Ansonsten zeigt der IFRAME immer nur ein leeres Dokument.
Und dafür muss wirklich für *JEDE EINZELNE* Tabellenzeile *EIN EIGENER* iFrame existieren? Das geht nicht auch in *EINEM EINZELNEN*?
MfG,
EKKi
Moinsen!
Um eine Statuswechsel durchzuführen drückt der User auf einen von mehreren Knöpfen. Jeder Zeile ist ein IFRAME zugeordnet in dem dann die Änderung auf die Datenbank geschrieben wird. Ansonsten zeigt der IFRAME immer nur ein leeres Dokument.
Und dafür muss wirklich für *JEDE EINZELNE* Tabellenzeile *EIN EIGENER* iFrame existieren? Das geht nicht auch in *EINEM EINZELNEN*?
Was ich mich eher frage: Und das MUSS ueber Iframes gehen? Wird dazu nicht JS benutzt? Koennte es also per AJAX geloest werden?
Moinsen!
Was ich mich eher frage: Und das MUSS ueber Iframes gehen? Wird dazu nicht JS benutzt? Koennte es also per AJAX geloest werden?
Steel,
ja, das muss über IFRAMEs und über JS gelöst werden.
Mache das jetzt indem ich die IFRAMEs nur dann erzeuge wenn der User etwas ändern will. Das löst jetzt das Problem so das man arbeiten kann.
Mahlzeit mike68,
Um eine Statuswechsel durchzuführen drückt der User auf einen von mehreren Knöpfen. Jeder Zeile ist ein IFRAME zugeordnet in dem dann die Änderung auf die Datenbank geschrieben wird. Ansonsten zeigt der IFRAME immer nur ein leeres Dokument.
Und dafür muss wirklich für *JEDE EINZELNE* Tabellenzeile *EIN EIGENER* iFrame existieren? Das geht nicht auch in *EINEM EINZELNEN*?
MfG,
EKKi
Hallo EKKi,
klar geht das, aber dann kann man eine Aktion auslösen und danach eine andere. Einige User wollten aber mehrere gleichzeitig anstossen und da braucht man dann jeweils einen IFRAME.
Wie gesagt, mir geht es weniger darum ob das Sinn macht oder nicht. Habe das Problem jetzt gelöst.
Ich erstelle zuerst nur leere DIVs und wenn der User eine Aktion auslöst, dann erstelle ich dazu zuerst den IFRAME und danach mache ich den alten Prozess. Das funktioniert.
Mir geht es mehr darum, ob sich hier an der Eventbehandlung im IE weas geändert hat. Wenn ich nämlich in dem Fenster auf einen Menupunkt klicke um den Report zu verlassen, dann dauert das genausolange bis er anfängt zu reagieren. Und das Verhalten meine ich vorher nciht gesehen zu haben.
Und .... ich kann auch nicht mehr mit IE6 testen.
Hello,
klar geht das, aber dann kann man eine Aktion auslösen und danach eine andere. Einige User wollten aber mehrere gleichzeitig anstossen und da braucht man dann jeweils einen IFRAME.
Verstehe ich nicht. Ein normaler Browser führt doch sowieso nur eine begrenzte Anzahl von Requests gleichzeitig zur selben Domain durch. Wenn man acht gleichzeitig schafft, hat man schon Glück.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hello,
klar geht das, aber dann kann man eine Aktion auslösen und danach eine andere. Einige User wollten aber mehrere gleichzeitig anstossen und da braucht man dann jeweils einen IFRAME.
Verstehe ich nicht. Ein normaler Browser führt doch sowieso nur eine begrenzte Anzahl von Requests gleichzeitig zur selben Domain durch. Wenn man acht gleichzeitig schafft, hat man schon Glück.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hallo Tom,
da schaffen einige meiner User deutlich mehr. je nach Antwortzeit kommen da schon mal 20-30 Requests gleichzeig die abgesetzt werden.
Hat aber mit dem Problem nichts zu tuen, da bereits beim ERSTEN Klich die Latency auftritt.