php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS Probleme mit HTML5, Bootstrap oder jQuery ?

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 11-09-2007, 18:59
strassencoder
 Newbie
Links : Onlinestatus : strassencoder ist offline
Registriert seit: Jan 2006
Beiträge: 35
strassencoder ist zur Zeit noch ein unbeschriebenes Blatt
strassencoder eine Nachricht über Yahoo! schicken
Question Preload, Browsercache und Popups

Hallo liebe Community,

ich habe schon gegoogelt und in diversen Foren gesucht, aber leider habe ich noch keinen Plan was auf meiner Seite falsch läuft.

Ich brauche eigentlich auch keine fertige Lösung out of the box, sondern ein wenig Grundlagenwissen.

Folgendes Verhalten:

dhtml/javascript preloader läd 340 gifs ins Browsercache, alles wunderbar, die Seite wird dann angezeigt , was auch ok ist.

Surfe ich nun 5min nicht auf der Seite werden die Grafiken wieder neu geladen, was ich nicht verstehe da Sie alle im Cache sind.

Was mich aber noch mehr wundert, ist die Tatsache, dass wenn ich nach erfolgreich geladenen Grafiken auf derselben Seite ein Popup oder einen hyperlink->auf z.B. target=blank mache, werden die Grafiken auch wieder reingeladen...

ich benutze als preload ein rudimentäres javascript, also dass was es überall gibt, in Form von einem "image" - array welches bei laden der Seite abgearbeitet wird und eine prozentuale anzeige mittels dhtml/js, also reines ausrechnen wieviele Grafiken im array sind und welche schon geladen wurden. im (c) vom preload steht:
// Simple DHTML Image Loader
// by Glen Murphy. Script located at http://bodytag.org/

meine frage ist warum läd mein Browser innerhalb von 20sec die grafiken neu in sein cache, ist das normal, wenn der focus auf ein anderes fenster gesetzt wird ? kann man das beeinflussen ?

also im Browser selber ist das cache im standardmodus wie bei Otto-Normal-Surfer (automatisch), klar das ich hier beim client nix beeinflussen kann.

Wer es mal testen möchte kann es sich gerne anschauen:
link

-> Bezug auswählen -> preload -> anzeige

-> nachmal klicken auf bezug -> kein preload -> sofortige Anzeige ( je nach Rechenleistung der eigenen CPU )

-> nun auf den Hilfelink mal klicken -> wieder schliessen -> nochmal auf auswählen und *zack* die Grafiken werden erneut ins cache geladen ohne preload ( der ist in dem Moment inaktiv ) aber die ganzen Grafiken sind wenn man es schnell macht maximal 30 sekunden im cache und die sind auch da ( jedenfalls bei mir in den Temp.Internetfiles )

also mir gehts eher um die Frage warum dieses Verhalten, wie die Lösung, die kann ich mir wahrscheinlich dann erarbeiten wenn ich weiß woran es liegt, bzw was sich der Browser dabei denkt.

Alle scripte hier zu posten wäre zu viel, aber ich stelle gerne die Codefragmente zur Verfügung. ich denke aber Ihr wisst schon ganz genau woran das liegt.

Ich bedanke mich schonmal im vorraus für alle Mühen die ich verursache.

Viele Grüsse Andre
Mit Zitat antworten
  #2 (permalink)  
Alt 11-09-2007, 19:27
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
340 gifs
??? Du machst irgendwas falsch ~~
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #3 (permalink)  
Alt 11-09-2007, 23:35
strassencoder
 Newbie
Links : Onlinestatus : strassencoder ist offline
Registriert seit: Jan 2006
Beiträge: 35
strassencoder ist zur Zeit noch ein unbeschriebenes Blatt
strassencoder eine Nachricht über Yahoo! schicken
Standard

ok... mach ich wahrscheinlich.

Vergiss mal die 341 Dateien, darum geht es doch gar nicht, ich finde die eigentliche Frage interssanter.

ich frage mal anderst : Warum läd ein Browser die zuvor mit einem skript vorgeladenen Grafik-Dateien einer Seite jedes mal nach wenn man ein popup aufmacht, oder ein neues Fenster per hyperlink, aber wenn man das nicht macht, kann man ewig auf der Seite surfen ohne das der Browser dieses Verhalten an den Tag legt(neuladen).

Besser ?

Gruß Andre

Geändert von strassencoder (11-09-2007 um 23:41 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 11-09-2007, 23:50
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Schon mal ausprobiert den Platz für den Browsercache höher zustellen? Dann hättest du zumindest eine Erklärung. Ist ähnliches zu beobachten wenn du zum Beispiel nur 10 Bilder lädst?
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #5 (permalink)  
Alt 12-09-2007, 00:09
strassencoder
 Newbie
Links : Onlinestatus : strassencoder ist offline
Registriert seit: Jan 2006
Beiträge: 35
strassencoder ist zur Zeit noch ein unbeschriebenes Blatt
strassencoder eine Nachricht über Yahoo! schicken
Standard

Hallo,

ob es so mit 10 dieser Grafiken ist, kann ich leider nicht sagen, da es viel zu schnell geht. Wenn man 10 grosse Dateien nimmt habe ich das Gleiche. Ich weiß das man eigentlich nicht soviele gifs nimmt, aber erst da ist mir das Verhalten bewusst geworden. Das schöne daran ist, man kann es nachvollziehen. Mit allen IE´s ( 5.5, 6.x, 7.x ).

Den Platzbedarf meines lokalen Browser-Caches zu erhöhen, um das Verhalten des Browsers - eines ich nenne es mal eines "Client-PCs" - zu beeinflussen , scheint mir ein Scherz.

Da ich mich parallel versuche durch viel googeln und probieren mein Problem zu lösen, lösche ich nach jedem Versuch mein cache, und ich seh was der Browser so mit seinem cache macht.

Mir kommt es so vor: wenn sich der Focus ändert, und man das "kind"-Fenster schliesst, um weiter zu surfen, läd der Browser nach.

Gruß Andre
Mit Zitat antworten
  #6 (permalink)  
Alt 12-09-2007, 10:54
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Mir kommt es so vor: wenn sich der Focus ändert, und man das "kind"-Fenster schliesst, um weiter zu surfen, läd der Browser nach.
Das wird dann wohl so im IE implementiert sein, das bei einem neuen Fenster der Cache nicht / nicht korrekt verwendet sondern neu geladen wird. Ich denke, da wirst du nichts dran schrauben können!

BTW: Du solltest die Scrollleiste auf der Seite nicht deaktivieren, ich kann mir gar nicht die ganze Seite ansehen!
Mit Zitat antworten
  #7 (permalink)  
Alt 12-09-2007, 10:55
highrise
 Member
Links : Onlinestatus : highrise ist offline
Registriert seit: Apr 2006
Ort: zu Hause *g*
Beiträge: 257
highrise ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Dass das Caching vom IE alles andere als intelligent ist, brauchen wir hier glaub ich nicht zu diskutieren...

es gibt aber gewisse META oder header, die zumindest versuchen können, den IE auf die richtige Bahn zu lenken, und ihm zu sagen, wie er die daten im chache behandeln soll...

auch interessant ist, ob die bilder vom server so kommen, wie sie sind, und ob der "zuletzt geändert" header stimmt...

der IE als Musterbeispiel, wie man einen Browsere nicht programmieren sollte, ist allerdings auch bei korrekter Servereinstellung immernoch hin und wieder "schlauer" als der benutzer und tut, wozu er gerade Lust hat...

google mal nach header, META, pragma, IE, cache, cache-control

oder einer Auswahl davon... dann wirst du schnell sehen, wie ich das meine... bedenke: 50% der beschriebenen Anleitungen sind Glückstreffer und funktionieren trotz umfangreicher Tests der Autoren nicht zuverlässig... eine patentlösung, die immer funktioniert, ist mir nicht bekannt...

greetz, high
__________________
Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
When everything else fails, manipulate the data...
Beschriftungen / Großformatdruck / Werbemittel
Mit Zitat antworten
  #8 (permalink)  
Alt 12-09-2007, 10:59
strassencoder
 Newbie
Links : Onlinestatus : strassencoder ist offline
Registriert seit: Jan 2006
Beiträge: 35
strassencoder ist zur Zeit noch ein unbeschriebenes Blatt
strassencoder eine Nachricht über Yahoo! schicken
Standard

hallo an alle,

Danke das Ihr mitüberlegt.

IE´s Cache ist wirklich nicht gut, und das Problem scheint nur im IE zu sein, Mozilla läd an der Stelle nicht nach sondern nimmt die Grafiken aus seinem Cache. ( Punkt für Mozilla )

Bisherige Lösungsansätze:

-per php header Befehl -> last modified ausgeben -> hat nichts geändert
auch sowas wie pragma oder sowas:

header("HTTP/1.0 304 Not Modified");

brachten leider nicht den Erfolg.

-die Popups zu "Tooltips" machen, ginge, ist aber eher ein workaround statt ner Lösung da dann nochmal 341 zusätzliche Grafiken geladen werden.

- die 341 Grafiken ( und es werden leider noch mehr ) per httpRequest asynchron laden. das scheint mir im Mom. der säuberste Lösungsansatz

Dummerweise ist halt für mein Projekt der IE der wichtigste Browser, gefolgt vom Mozilla. Das Clientel der Seite sind laut Server-Logs fast 90% IE´s, 5% MOzilla und 5% suchmaschinenbots...

Somit ist der IE bei dieser Seite das Maß der Dinge.

Hat jemand noch eine Idee oder einen Erfahrungswert ?

Gruß Andre

btw: was ist eigentlich das gegenteil zu cache-control: no-cache ? cache-control: cache ?

Geändert von strassencoder (12-09-2007 um 11:15 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 12-09-2007, 11:15
highrise
 Member
Links : Onlinestatus : highrise ist offline
Registriert seit: Apr 2006
Ort: zu Hause *g*
Beiträge: 257
highrise ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hast du mal versucht, die header nicht nur für die seite, sondern auch für die bilder einzeln mitzuschicken?

also n kurzes script, dass einfach den header sendet und dann das bild durch schiebt...

ansonsten ... no plan...

greetz, high
__________________
Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
When everything else fails, manipulate the data...
Beschriftungen / Großformatdruck / Werbemittel
Mit Zitat antworten
  #10 (permalink)  
Alt 12-09-2007, 13:51
strassencoder
 Newbie
Links : Onlinestatus : strassencoder ist offline
Registriert seit: Jan 2006
Beiträge: 35
strassencoder ist zur Zeit noch ein unbeschriebenes Blatt
strassencoder eine Nachricht über Yahoo! schicken
Standard

Hallo Highrise,

das habe ich noch nicht versucht, wobei ich auch ehrlich gesagt nicht weiß wie so ein script aussehen muss, damit es für die Bilder einen Extra-header mitsendet. Meinst du das man "einfach" gesagt, für jedes Bild eine "seite" generiert, wenn alle 341 "seiten" dann geladen wurden -> alles anzeigen. Rein interssehalber noch: oder meinst du per php header() Befehl , wie müsste der dann lauten ? oder nach was kann ich googlen

Ich bin mittlerweile der Meinung, dass man das cache beim IE vergessen kann, und man es auch nicht einfach so "rumbefehlen" kann wie man es gerne hätte.

Ich habe die ganze Geschichte gerade in eine art AJAX - httprequest Methode verpackt, nun habe ich die 341 grafiken in 5 Teile gesplittet was die Ladezeit deutlich verkürzt - popups werden als tooltips angezeigt, womit man einen workaraound für das dämliche IE cache hat. Natürlich werden die Tooltips dann auch mittels httpsendrequest-Methode erst geladen wenn gebraucht. somit habe ich den Quelltext immernoch schön schmal gehalten.

Ich bin froh vor ein paar Wochen hier im Forum auf "die harte Tour" mal diesen httpsendrequest gelernt bekommen zu haben. ist eigentlich ne feine Sache.

Wie man den IE trotzdem dazu bringt sein cache zu benutzen würde mich aber immernoch interssieren.

Auf allen gegoogleten Seiten kann man immer nur das Gegenteil lesen, also das man das cache nicht benutzt und immer eine aktuelle Seite hat...

Gruß Andre

Geändert von strassencoder (12-09-2007 um 13:54 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 12-09-2007, 19:29
highrise
 Member
Links : Onlinestatus : highrise ist offline
Registriert seit: Apr 2006
Ort: zu Hause *g*
Beiträge: 257
highrise ist zur Zeit noch ein unbeschriebenes Blatt
Standard

um für jedes bild einen eigenen header zu senden, kannst du ein php-script verwenden...

ganz zu beginn sollten dann zwei header() aufrufe kommen...

einer für den content-type, der dem browser mitteilt, das bilddaten und nicht etwa text folgt, der zweite für das caching (wie gesagt, welcher header da funktioniert hab ich auch noch nicht raus)...

danach kannst du einfach das bild mit readfile('bilddatei.gif') durchschieben....

sinnigerweise sollten die bilder dann in einem eigenen verzeichnis zusammen mit dem script liegen.

dazu gehört dann noch eine .htaccess, die die anfragen umschreibt, so dass, wenn der browser nach meinbild.gif in diesem verzeichnis fragt, in wirklichkeit z.B. phpscript.php?bild=meinbild.gif geladen wird...

der ablauf wäre dann so etwa:
der IE will meinbild.gif laden und sendet eine anfrage an dern server
der server denkt sich "halt stop, da ist ja ne rewrite rule" liefert stattdessen phpscript.php?bild=meinbild.gif
das script geht dann hin, und sendet passende header und liefert anschließend die in "bild" angegebene Datei... (ggf. kann man auch einfach dann ein not modified senden, und dem browser das bild völlig vorenthalten... dazu müsste man allerdings noch ein paar infos vom request-header auswerten, um sicher zu sein, dass er das bild bereits im cache hat.)

greetz high
__________________
Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
When everything else fails, manipulate the data...
Beschriftungen / Großformatdruck / Werbemittel
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:10 Uhr.