HighDots Forums  

Bild im Hintergrund aktualisieren?

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Bild im Hintergrund aktualisieren? in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Peter Stoss
 
Posts: n/a

Default Bild im Hintergrund aktualisieren? - 12-06-2005 , 04:58 PM






Hallo,
folgendes: ein etwa 100-150kb-großes Bild muss alle 15 Sekunden
aktualisiert werden (Seiten-Reload mit Bild und ein paar Angaben, die
sich auch ändern). Die Seite wird derzeit durch ein location.href
aktualisiert, wenn ein countdown-Counter abläuft.
Unschön dabei ist nur, dass das Bild natürlich kurz verschwindet weil
die Seite reloaded wird uns sich dann je nach Anbindung neu aufbaut.
Bei DSL schneller (1-2 Sekunden), bei ISDN und co natürlich langsam.
Gibt es eine Möglichkeit, dass sich das Bild im Hintergrund schonmal
'aktualisiert' und wenn es fertig ist, blitzschnell ohne dass man es
wirklich durch flackern merkt über das andere legt?

Peter.


Reply With Quote
  #2  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Bild im Hintergrund aktualisieren? - 12-06-2005 , 10:45 PM






Peter Stoss wrote:

Quote:
folgendes: ein etwa 100-150kb-großes Bild muss alle 15 Sekunden
aktualisiert werden (Seiten-Reload mit Bild und ein paar Angaben, die
sich auch ändern). Die Seite wird derzeit durch ein location.href
aktualisiert, wenn ein countdown-Counter abläuft.
Unschön dabei ist nur, dass das Bild natürlich kurz verschwindet weil
die Seite reloaded wird uns sich dann je nach Anbindung neu aufbaut.
Bei DSL schneller (1-2 Sekunden), bei ISDN und co natürlich langsam.
Gibt es eine Möglichkeit, dass sich das Bild im Hintergrund schonmal
'aktualisiert' und wenn es fertig ist, blitzschnell ohne dass man es
wirklich durch flackern merkt über das andere legt?
Nein, dafür müsstest Du schon das Neuladen des Dokuments aufgeben bzw. eine
zusätzliche Alternative programmieren. Dann könntest Du nämlich einen
zeitgesteuerten Request (durch setTimeout(), welches setTimeout() auslöst,
oder durch setInterval()) nur für die Ressourcen auslösen, die sich ändern.
Wenn die Gültigkeit der Ressourcen sofort abläuft[1], müsste der UA dann
auch das Bild aktualisieren. Sollte das wider Erwarten nicht
funktionieren, kannst Du den query-part des jeweiligen URI benutzen, um das
Neuladen der Ressource zu erzwingen.

Siehe auch <URL:http://de.wikipedia.org/wiki/Ajax_%28Programmierung%29>.


HTH

PointedEars
___________
[1] <URL:http://mnot.net/cache_docs/>


Reply With Quote
  #3  
Old   
Daniel Kabs
 
Posts: n/a

Default Re: Bild im Hintergrund aktualisieren? - 12-07-2005 , 03:41 AM



Hallo Peter!

Peter Stoss wrote:
Quote:
folgendes: ein etwa 100-150kb-großes Bild muss alle 15 Sekunden
aktualisiert werden ...
Gibt es eine Möglichkeit, dass sich das Bild im Hintergrund schonmal
'aktualisiert' und wenn es fertig ist, blitzschnell ohne dass man es
wirklich durch flackern merkt über das andere legt?
Vielleicht habe ich dein Ansinnen falsch verstanden, aber was spricht
gegen das sog. "Image Preloading"? Du erzeugst mit new Image() einen
Puffer, dessen onload-Event-Handler die src-Eigenschaft des HTML
Bild-Elements auf die src-Eigenschaft des Puffers setzt. Nun setzt du
die src-Eigenschaft des Puffers und triggerst damit das Laden des Bildes
in den Puffer, der Handler kümmert sich ums Anzeigen.

Mehr dazu hier:

http://www.faqts.com/knowledge_base/index.phtml/fid/122

Ein Flackern kann aber dennoch auftreten, z.B. bei IE, wenn der Benutzer
das Caching deaktiviert hat ("bei jedem Zugriff auf die Seite"). Das
kann man vielleicht mit CSS erschlagen, in dem man zwei Bilder
abwechselnd auf (un)sichtbar schaltet.

Gruß
Daniel


Reply With Quote
  #4  
Old   
Daniel Kirsch
 
Posts: n/a

Default Re: Bild im Hintergrund aktualisieren? - 12-07-2005 , 09:29 AM



Peter Stoss wrote:
Quote:
Hallo,
folgendes: ein etwa 100-150kb-großes Bild muss alle 15 Sekunden
aktualisiert werden (Seiten-Reload mit Bild und ein paar Angaben, die
sich auch ändern). Die Seite wird derzeit durch ein location.href
aktualisiert, wenn ein countdown-Counter abläuft.
Unschön dabei ist nur, dass das Bild natürlich kurz verschwindet weil
die Seite reloaded wird uns sich dann je nach Anbindung neu aufbaut.
Bei DSL schneller (1-2 Sekunden), bei ISDN und co natürlich langsam.
Gibt es eine Möglichkeit, dass sich das Bild im Hintergrund schonmal
'aktualisiert' und wenn es fertig ist, blitzschnell ohne dass man es
wirklich durch flackern merkt über das andere legt?
Ggf. kannst Du für solche Späße einfach zwei IFrames übereinander legen.
Während Du in dem einen Deine Seite anzeigst, wird im anderen die URL
aktualisiert. Bei onload wird ein Flag gesetzt. Ist dies nach 15
sekunden noch nicht gesetzt, kannst Du ja durch das onloadscript den
framewechsel auslösen, ansonsten eben durch den Timer.

Dabei solltest Du den Frame nicht mit display:none verstecken da ein
Browser dann ggf. überhaupt nichts im Frame lädt. Verwende stattdessen
visibility oder etwas in der Art.

Grüße
Daniel


Reply With Quote
  #5  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Bild im Hintergrund aktualisieren? - 12-07-2005 , 07:38 PM



Daniel Kabs wrote:

Quote:
Hallo Peter!
Wir lesen hier alle mit!

Quote:
Peter Stoss wrote:
folgendes: ein etwa 100-150kb-großes Bild muss alle 15 Sekunden
aktualisiert werden ...
Gibt es eine Möglichkeit, dass sich das Bild im Hintergrund schonmal
'aktualisiert' und wenn es fertig ist, blitzschnell ohne dass man es
wirklich durch flackern merkt über das andere legt?

Vielleicht habe ich dein Ansinnen falsch verstanden, aber was spricht
gegen das sog. "Image Preloading"?
Es funktioniert nicht.


PointedEars


Reply With Quote
  #6  
Old   
Daniel Kirsch
 
Posts: n/a

Default Re: Bild im Hintergrund aktualisieren? - 12-08-2005 , 03:48 AM



Thomas 'PointedEars' Lahn wrote:
Quote:
Daniel Kabs wrote:
Vielleicht habe ich dein Ansinnen falsch verstanden, aber was spricht
gegen das sog. "Image Preloading"?


Es funktioniert nicht.
Es funktioniert schon, nur nicht unter allen Bedingungen und
Browser-Einstellungen.
Nur weil eine Lösung nicht 100% erreicht muss sie deshalb verworfen
werden oder Scheiße sein. Wenn ich durch "Image Preloading" bei 80% der
JavaScript nutzenden Surfern eine verbesserte Performance erzielen kann,
ist das eine tolle Sache - vorausgesetzt die Seiten funktionieren
ansonsten bei den restlichen 20% ohne deutliche Einbusen. Und selbst
wenn es "nur" 40% oder 50% sind lohnt es sich.

Grüße
Daniel


Reply With Quote
  #7  
Old   
Ralf Beutler
 
Posts: n/a

Default Re: Bild im Hintergrund aktualisieren? - 12-08-2005 , 06:00 AM



Daniel Kirsch wrote:

Quote:
ansonsten bei den restlichen 20% ohne deutliche Einbusen.
*deutlichen*
muss das heißen.

br |SCNR| rb
--
Sie freuten sich riesig, wenn eine Maschine nach sechs Stunden etwas
fertig brachte, wozu jeder Mensch auf der Straße für 2 Cent fähig
gewesen wäre. Anschließend ließen sie sich Bananen- und Sushi-Pizza
kommen und schliefen vor der Tastatur ein. [aus T.P., Heiße Hüpfer]


Reply With Quote
  #8  
Old   
Daniel Kabs
 
Posts: n/a

Default Re: Bild im Hintergrund aktualisieren? - 12-08-2005 , 06:24 AM



Hallo Thomas!

Thomas 'Ingrid' Lahn wrote:
Quote:
Hallo Peter!

Wir lesen hier alle mit!
Offensichtlich!


Quote:
Vielleicht habe ich dein Ansinnen falsch verstanden, aber was spricht
gegen das sog. "Image Preloading"?

Es funktioniert nicht.
Warum nicht?


Gruß
Daniel


Reply With Quote
  #9  
Old   
Daniel Kabs
 
Posts: n/a

Default Re: Bild im Hintergrund aktualisieren? - 12-08-2005 , 07:36 AM



Hallo Thomas!

Ich hatte nicht das klassische "Image Preloading" gemeint, das halte ich
für unnötig (ausser man will das Vorhandensein einer Resource-Testen).

Viel mehr meinte ich ein zyklisches Aktualisieren eines Bildes auf der
Seite in der Art des "Image Preloadings". Also mit einem Puffer, in dem
man ein Bild reinlädt und wenn der Vorgang erfolgreich war, das Bild
anzeigt. Da die Funktion "Bild anzeigen" per Javascript nicht direkt
ausgelöst werden kann, kommt die Cache-Problematik ins Spiel.

Thomas 'Ingrid' Lahn wrote:
Quote:
Weil Du _keine_ Kontrolle über den Cache des Benutzers hast. ...
Stimmt, wenn der Benutzer beim IE die Cache-Strategie "bei jedem Zugriff
auf die Seite" gewählt hat. Aber die Voreinstellung ist "Automatisch"
und dann funktioniert es. Beim FF habe ich noch nicht probiert, ob die
Einstellungen einen Unterschied machen.

Gruß
Daniel


Reply With Quote
  #10  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Bild im Hintergrund aktualisieren? - 12-08-2005 , 07:57 AM



Daniel Kirsch wrote:

Quote:
Thomas 'PointedEars' Lahn wrote:
Daniel Kabs wrote:
Vielleicht habe ich dein Ansinnen falsch verstanden, aber was spricht
gegen das sog. "Image Preloading"?

Es funktioniert nicht.

Es funktioniert schon, nur nicht unter allen Bedingungen und
Browser-Einstellungen.
Nur weil eine Lösung nicht 100% erreicht muss sie deshalb verworfen
werden oder Scheiße sein. [...]
Du hast nicht richtig hingelesen (OP) und nicht genügend darüber
nachgedacht.


PointedEars


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.