IE ignoriert CPU-abhängig spezielles CSS in Frames
Urs Enke
- javascript
Hallo,
wie mögen wohl Themenbereich und Thema zusammenpassen? Ich habe einen mittels JavaScript dynamisch vom aktuellen Datum abhängig erzeugten Kalender geschrieben. Meine Erfahrung zeigt inzwischen, daß unter gegebenen Systemvoraussetzungen (CPU/-Belastung) ab einer gewissen Anzahl anzuzeigender Wochen die CSS-Attribute der mittels document.write geschriebenen Tabelle komplett ignoriert werden, sofern die Datei in einem Frame geladen wird. Lasse ich z.B. im Hintergrund ein Video laufen, liegt die kritische Grenze bei weniger Wochen. In einem eigenen Fenster - also ohne Frames - geladen dauert die Anzeige vieler Wochen zwar länger, mündet aber kurioserweise immer in einer korrekten Darstellung.
Der Effekt tritt sowohl bei "on-the-fly-document.write" als auch dann auf, wenn der Code zunächst in eine Variable geschrieben und dann auf einen Schlag ausgegeben wird. Betroffen sind übrigens nur ganz spezielle Attribute: Textformatierung und Zellenbreite sind scheinbar immun, Zellen-Hintergrundfarbe und -Rahmen hingegen inexistent.
Der Link führt zu einer Beispielseite, auf der man verschiedene Kalenderlängen ausprobieren kann. Überflüssig zu erwähnen, daß die Fehler ziemlich unansehnlich sind.
Was mag den IE (6) nun dazu bringen, sich so zu verhalten? Und vor allem: Gibt es (außer ggf. erhöhter Code-Effizienz) einen Weg, dies zu umgehen?
grübelnd,
Urs
moin,
versuch doch einfach, das ganze mit PHP zu machen, denn dann muss ja der Server rechnen und der Besucher wird entlastet. Generell gehe ich davon aus, dass der Server schnell genug ist und alles angezeigt wird...
wenn du kein PHP hast, musst du halt deinen Code optimieren. (Sorry, da *duck* blick ich nicht ganz durch, meistens ein Indiz, den Code zu vereinfachen :)
Fabian
Hallo Urs,
ich hatte mal das Problem, dass bei einem Browser eine Variable aus dem Kopf im Body unbekannt war. Ich vermute, dass die Reihenfolge, in der Definitionen, Javascripte, CSS, etc. abgearbeitet wetrden, nicht bei allen Browsern gleich ist. Versuch doch mal, die Javascript-Befehle, die die Tabelle aufbauen, in eine "onload-Funktion" zu legen. Die wird (glaube ich) als letztes abgearbeitet.
Gruß, Jürgen