• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

reload ohne Button

asterix3

New member
Hallo zusammen. Ich möchte eine Seite neu laden, ohne jedoch einen Knopf zu drücken.
Mit diesem Link hier funktioniert es.
Code:
<a href="javascript:location.reload(true)">Seite neu laden</a>

Kann ich das auch ausführen, ohne dass ein Knopf gedrückt wird?
Vielen Dank (bin Anfänger).
 
Geht schon, macht nur keinen Sinn, wenn der Browser ständig die Seite neu lädt.
Erzähl mal etwas mehr von dem, was du eigentlich erreichen möchtest.
 
Ich möchte die Seite einmalig neu laden. Ich habe verschiedene Formulare die aus Datenbanken Daten holen (per Submit). Am Schluss, wenn alle Daten vorhanden sind, übergebe ich die Daten einer anderen Datenbank. Damit der Knopf für die Uebergabe aktiviert ist und auch die Ueberprüfungen stattfinden, muss ich die gesamte Seite neu laden (allerdings die Sessions behalten).
Darum möchte ich am liebsten einmalig die Seite neu laden. Der Code ist aber in einer Anweisung drin (wenn alle Daten vorhanden sind, dann aktiviere das Umschliessende Formular und lade die Seite einmalig neu.
Ich hoffe, das war verständlich ausgedrückt? Danke vielmals für eure Hilfe
 
Kann mir nicht so richtig vorstellen, daß ein einmaliges automatisches Reload wirklich notwendig sein soll. Dein eigentliches Problem ist vermutlich ein Fehldesign in deiner Formularverarbeitung, was du durch ein Reload umschiffen möchtest.

Ein einmaliges Reload einer Seite geht m.E. auch nur mit serverseitiger Unterstützung.
Dort kannst du einmalig ein Javascript oder ein Meta-Refresh generieren, was die Seite clientseitig einen Refresh ausführen läßt. Du musst dabei serverseitig überwachen, z.B. per Session, das dies nur einmalig passiert.
 
also ich müsste genau das bekommen, wie wenn ich den Reload Knopf des Browsers (oben rechts im Browser) drücke. Genau diese Funktion muss ich einbauen.
Dafür muss es doch einen Code geben, oder?
 
Gäbe es dazu ein Beispiel? Leider habe ich nur von PHP eine leise Ahnung. Und ich kann mir nicht vorstellen, dass es nicht einen einfachen Code geben muss, mit dem man die Seite wie mit dem Reload-Knopf des Browsers neu lädt?
Hat mir jemand ein Beispiel, wie es funktioniert? Vielen Dank!
 
Den Code hast du doch schon.
PHP:
echo '<script> 
    location.reload(true);
    </script>';

Die Ausgabe darfst du jedoch nur einmalig machen, siehe meine Bemerkungen oben.

Anmerkung: Ein Ajax-Requst vom selben User auf die aktuelle Seite kann in Verbindung mit Sessions zu Problemen führen.
Das alles ist nur ein Workaround und löst nicht das eigentliche Problem.
Kenne keine Formularverarbeitung mit PHP, welche unbedingt einen zusätzlichen clientseitigen Request benötigen würden.
Von solchen Sachen wie Autocomplete jetzt mal abgesehen.
 
Zuletzt bearbeitet:
ja genau, ich suche etwas, das den Reload nur ein einziges Mal macht. Wie der Refresh-Knopf des Browsers.

Es sollte doch so etwas geben - also einen einfachen Code-Schnipsel -, oder täusche ich mich?

Das Problem ist wohl, dass ich einzelne Teile der Seite als include eingebunden habe. Nun werden diese Includes reingeholt und neu geladen, nicht aber der Rest der Seite. Der sollte auch neu geladen werden (und zwar automatisch, beim Reinholen des neuen Includes).
Gibt es da einen Trick?

Vielen Dank
 
Zuletzt bearbeitet:
Ich habe es nun so gelöst (irgendwo aufgestöbert und bei den includes eingebunden):

Code:
<script type='text/javascript'>

(function()
{
  if( window.localStorage )
  {
    if( !localStorage.getItem( 'firstLoad' ) )
    {
      localStorage[ 'firstLoad' ] = true;
      window.location.reload();
    }  
    else
      localStorage.removeItem( 'firstLoad' );
  }
})();

</script>
 
location.relaod() funktioniert ganz gut aber es gibt noch
window.location.href=window.location.href
.href verhindert das cachen des reloads das ist alles, berichtigt mich wenn ich falsch liege.
 
@mikdoe:
Skripte mit Sessions von selben User, die zeitgleich abgearbeitet werden sollen, blockieren sich gegenseitig.
Dazu ein kleiner Test, den ihr gerne selbst probieren könnt.

Script1
PHP:
<?php
session_start();
$dateStart = date('Y-m-d H:i:s');
//
sleep(20);
echo "Start script 1: ".$dateStart."<br>";
echo "Script Ende : ".date('Y-m-d H:i:s')."<br>";

Script2
PHP:
<?php
session_start();
$dateStart = date('Y-m-d H:i:s');
//
echo "Start script 2: ".$dateStart."<br>";
echo "Script Ende : ".date('Y-m-d H:i:s')."<br>";

Wird nun Script1 gestartet und gleich danach in einen neuen Browsertab Script2,
dann wartet Script2 bis Script1 fertig ist.

typische Ausgabe:
Start script 1: 2016-02-19 07:55:15
Script Ende : 2016-02-19 07:55:35

Start script 2: 2016-02-19 07:55:35
Script Ende : 2016-02-19 07:55:35

Wird nun session_start in Script2 auskommentiert und der test wiederholt, wird Script2 ausgeführt, während Script1 noch läuft.

Dies kann zum Problem werden, wenn aus einer Applikation mehrere Ajaxrequsts gleichzeiting abgesetzt werden und einer oder mehrere z.B. durch DB-Zugriffe länger brauchen.


@asterix3:
Dein Script dürfte bei jeden Aufruf einen zusätzlichen Reload machen und nicht nur einmalig.

@xorg1990:
Ob durch Zuweisung einer neuen location die Informationen immer neu von Server geholt werden und nicht aus dem cache, k.A.
reload kann eine optionaler Parameter (true) mitgegeben werden, der laut Beschreibung dann die Seite vom Server holt.
 
@mikdoe:
Skripte mit Sessions von selben User, die zeitgleich abgearbeitet werden sollen, blockieren sich gegenseitig.
Dann ist das, weil diese Sessions an den Browser gebunden sind, richtig? Das heißt ich kann mit diesem Browser keine zweite unabhängige Session erzeugen? Das ist natürlich doof. Wieso macht man sowas? Gibts dafür keinen Patch?
 
Das ist nicht doof, hat sogar seine Vorteile.
Als ich obigen Beitrag so nebenbei gekritzelt habe, bin ich ins Timeout gelaufen und die Vorschau brachte mir das Anmeldefenster. Mein Beitrag schien erstmal weg, hab mich dann in einem neuen Browsertab angemeldet und bin im ersten Tab mit Browserback zurück, und mein Beitrag war wieder da und ich konnte normal weitermachen.

Als Entwickler sollten man mehrere Browser parat haben, damit kannst du dann auch mehrere unabhängige Sessions erzeugen.
 
jspit schrieb:
Skripte mit Sessions von selben User, die zeitgleich abgearbeitet werden sollen, blockieren sich gegenseitig.
Das ist wohl war, aber selbst ich als nicht fach Informatiker habe mal in einem PHP Grundkurs gelernt das man nicht 2 Session pro Browser starten soll.

Verstehe auch nicht warum mich für ein ajax request 'ne Session aufmachen soll.

jspit schrieb:
Als Entwickler sollten man mehrere Browser parat haben, damit kannst du dann auch mehrere unabhängige Sessions erzeugen.
Meine Worte:grin:
 
Ich finde das sehr unflexibel. Finde es besser, wenn jeder Request eine Session-ID mitgibt. Dann kann man auch in einem Browser mehrere Sessions eröffnen, was ein völlig unabhängiges Multi-Tab arbeiten ermöglicht. Manchmal will man sich doch sicher auch mal in einem zweiten Tab als ein anderer User anmelden, oder? Geht das dann auch nicht bei eurem komischen Session Gefrickele? :)
 
mikdoe schrieb:
Manchmal will man sich doch sicher auch mal in einem zweiten Tab als ein anderer User anmelden, oder? Geht das dann auch nicht bei eurem komischen Session Gefrickele?
Nee mik, das geht nicht. Guck mal wenn du dich hier im Forum einloggst und einen neuen Tab öffnest und da ins Forum gehst bist du auch schon eingeloggt. In einem anderen Browser nicht.

Das kann man auch nicht ändern. Beim Schnibbel. :icon7:
 
Finde es besser, wenn jeder Request eine Session-ID mitgibt.
Dann kannst du auch gleich auf Sessions verzichten, denn das ist ja das Standardverhalten von HTTP: keine Korrelation zwischen den Requests.

Aber prinzipiell kannst du die Sessionverwaltung eigentlich so machen, wie du willst. Auch in PHP. Du darfst dann hald einfach nicht die Standardimplementierung und Cookies verwenden.

blockieren sich gegenseitig
Nur wenn man das so will. Wenn man die Sessions nur dann öffnet, wenn man sie braucht, und sie dann auch gleich wieder schließt (PHP: session_write_close - Manual ), blockiert sich da nur minimal was.
 
Wenn man die Sessions nur dann öffnet, wenn man sie braucht, und sie dann auch gleich wieder schließt (PHP: session_write_close - Manual ), blockiert sich da nur minimal was.
Ist mir bekannt und geht schon etwas mehr in die Tiefe. Ersteres geht bei PHP-Einsteigern regelmäßig gegen den Baum, wenn schon irgend eine Ausgabe getätigt wurde.
Aber das ist für dich sicher auch nicht neu.
 
Zuletzt bearbeitet:
Zurück
Oben