Hallo allerseits,
ich habe mir eine webbasierte kleine Fotoschau programmiert. Ein paar Zeilen JavaScript sollen den Firefox anweisen alle 60 sec die Seite neu aufzurufen, um dann ein anderes Foto zu zeigen. Im Prinzip funktioniert das alles schön. Allerdings kommt es hin und wieder vor, das gerade zum Reloadzeitpunkt die Webseite nicht verfügbar ist. FF steigt aus dem Scipt aus und sagt, dass die Webseite nicht verfügbar ist. Auch wenn die Webseite dann wieder da ist (vermutlich nur Sekunden später), bleibt der FF so stehen. Kann ich den FF irgendwie so einstellen, dass er den Script weiterarbeitet und nicht die Störungsseite anzeigt, die ja alles abbricht, was kurz darauf wieder funktionieren würde?
Webseiten reload
-
DB7WN -
24. November 2018 um 23:41 -
Erledigt
-
-
Versuche es doch einmal mit der Erweiterung ReloadMatic anstelle des Skriptes.
EDIT: Nach erneuter Überlegung denke ich, dass das vorher Gesagte nicht das ist, was du genau gemeint hast. Es geht wohl eher um dein Skript auf deiner Webseite, welcher für den 60sec. page-refresh zuständig ist, und welcher beim neu laden der nicht erreichbaren Seite abgebrochen wird. (muss zur späten Stunde wohl etwas verwechselt haben.)
Da ich mich persönlich nicht wirklich mit Webentwicklung auskenne, muss ich wohl leider bei der Frage passen, vermute jedoch, dass es höchstwahrscheinlich normal ist, dass das Skript nicht weiter ausgeführt wird, wenn deine Seite beim reload kurzzeitig nicht verfügbar ist. Ob man den page-refresh anders implementieren kann, müsste dir jemand beantworten, welcher sich mit dem Thema besser auskennt. (höchstwahrscheinlich könnte dir der Seitenadmin Sören hier weiterhelfen)
-
Wenn es nur eine HTML-Seite ist die neu geladen werden soll:
<meta http-equiv="refresh" content="60; URL=https://Deine_Seite.html">
in den Source der Seite einbauen. -
Zitat
<meta http-equiv="refresh" content="60; URL=https://Deine_Seite.html">
genauso hatte ich das zuerst gemacht. Hat im Prinzip funktioniert, aber schlechter als das JavaScipt.
Das Problem ist ja, wenn gerade der refresh angefordert ist, ist manchmal die website nicht verfügbar (ich weiß nicht warum). Und dann steigt sofort der FF mit der Fehlermeldung aus. Die refresh-anforderung später nocheinmal zu senden ist sinnlos, weil der FF die Verbindung zur Seite abgebrochen hat. -
Wie sieht der JS-Code aus?
-
ziemlich einfach:
<script type="text/javascript">
setTimeout(function () { location.reload(true); }, 60000);
</script> -
Könnte das die Lösung sein? Was meint ihr? Ich probiers mal mit "30".
https://support.mozilla.org/de/kb/warnung-…ortendes-skript -
Nein, da geht es um etwas anderes.
Versuche diesen Code:
Code
Alles anzeigenfunction request() { let req = new XMLHttpRequest(); req.open('GET', location.href); req.onload = function() { if (req.status == 200) { location.reload(true); } else { setTimeout(request, 5000); }; }; req.send(); }; setTimeout(request, 60000);
Wenn die Seite nicht verfügbar ist, wird es nach 5 Sekunden wieder versucht usw.
-
Also ich hab gestern mal in about:config - dom.max_script_run_time die maximale scriptlaufzeit von 10 auf 30 gesetzt (sind das Sekunden?). Bis jetzt gab es noch keinen Ausfall. Ich weiß - das nicht-Auftreten eines Fehlers ist kein Beweis, dass alles i.O. ist.
Ich stelle mir vor, dass JavaScript den Reload anfordert, wenn die Seite nicht da ist wartet, und FF nach Ablauf der "max_script_run_time" in den Fehlermodus geht. Wenn ich die "max_script_run_time" erhöhe, kommt die Erreichbarkeit der Seite innerhalb der verlängerten "max_script_run_time" wieder und das Script kann beendet werden. Das ist meine Theorie dazu - vielleicht ganz falsch, aber erscheint mir zunächst mal logisch.Dein Vorschlag "aborix" muss ich wohl in meinen PHP-Code einbauen. Ich bin nicht sonderlich gut im Programmieren, noch nicht einmal diese paar Zeilen verstehe ich ohne GOOgle und Buch. Aber ich werd's schon schaffen.
-
Deine Änderung in about:config hat wohl wenig damit zu tun, https://support.mozilla.org/de/kb/warnung-…ortendes-skript.
Ich bin kein Frontend-Deveoper (sprich habe wenig Erfahrung mit JS) aber wieso missbrauchst du einen Webseitenreload für das Anzeigen eines neuen Bildes? Das geht doch schon seit Jahren anders und besser? So etwas? https://www.w3schools.com/howto/howto_js_slideshow.asp
-
wieso missbrauchst du einen Webseitenreload für das Anzeigen eines neuen Bildes? Das geht doch schon seit Jahren anders und besser? So etwas? https://www.w3schools.com/howto/howto_js_slideshow.aspEs geht darum auf einem alten Tablet aus einer beliebigen Zahl von Bildern, die ich hochgeladen habe, ohne Hand anzulegen - also automatisch - eine Zufallsauswahl in Endlosschleife darzustellen. Ich wüsste nicht, wie ich das ohne php machen sollte.
-
Wenn du mit deiner Lösung glücklich wirst möchte ich dir nicht im Weg stehen, ich glaube einfach dass es bessere Lösungen für dein "Problem" gibt. Bei einem Tablet würde mir z.B. eine App in den Sinn kommen.
-
Wenn du mit deiner Lösung glücklich wirst möchte ich dir nicht im Weg stehen, ich glaube einfach dass es bessere Lösungen für dein "Problem" gibt. Bei einem Tablet würde mir z.B. eine App in den Sinn kommen.Ja, eine App war mein erster Gedanke und wäre wohl auch ziemlich vernünftig für diesen Fall. Ich hatte mir ein Buch gekauft über Programmierung in Java/Android und auch Google intensiv befragt. Nach ein paar Versuchen mit irgendeinem "...Studio" habe ich das aufgegeben. Das ist mir zu umständlich und zu kompliziert. Das will ich nicht mehr lernen.
Egal - es ist für mich nur ein Hobby. Ich werde mal die Anregungen von hier aufnehmen. -
Ich hätte es eher daran gedacht eine bestehende App zu nehmen, dafür gibt es ja sicher auch schon etwas das für dich passt, oder?
-
Zitat
gibt es ja sicher auch schon etwas das für dich passt, oder?
Das gibt's bestimmt.
Mir geht's oft weniger darum eine fertige Lösung zu suchen. Es macht mir Freude, wenn es mir als Hobbyist gelingt, auch mit Hilfe von anderen, die es besser können :klasse: , etwas selbst zu "basteln". Ich probiers jetzt mal mit HTML/JavaScript, was der Browser ja ohne Server anzeigen kann, und wofür ich auch keine Android-Programmierung brauche.