window.location (JS) vs Header () (PHP) für die Umleitung

8

mit JS: (in <head> tag)

%Vor%

mit PHP: (in <head> tag)

%Vor%

Welchen soll ich verwenden? oder ein anderes?

und Was ist mit der Verwendung von <meta> ?

? %Vor%

Viele gute Antworten, ich weiß nicht, welche Antwort ich akzeptieren werde. Vielen Dank

    
l2aelba 27.03.2013, 09:02
quelle

5 Antworten

15

Das Ergebnis ist für alle Optionen gleich. Umleiten.

<meta> in HTML:

  • Zeigen Sie den Inhalt Ihrer Website und leiten Sie den Benutzer nach einigen (oder 0) Sekunden um.
  • Sie müssen JavaScript nicht aktivieren.
  • Brauche kein PHP.

window.location in JS:

  • Javascript aktiviert benötigt.
  • Brauche kein PHP.
  • Zeigen Sie den Inhalt Ihrer Website und leiten Sie den Benutzer nach einigen (oder 0) Sekunden um.
  • Redirect kann von allen Bedingungen abhängig sein if (1 === 1) { window.location.href = 'http://example.com'; } .

header('Location:') in PHP:

  • Sie müssen JavaScript nicht aktivieren.
  • PHP benötigt.
  • Redirect wird zuerst ausgeführt, Benutzer sieht nie was danach ist. header() muss der erste Befehl im PHP-Skript sein, bevor irgendein anderer ausgegeben wird. Wenn Sie versuchen, einige vor dem Header auszugeben, erhalten Sie Warning: Cannot modify header information - headers already sent
Damonsson 27.03.2013, 09:04
quelle
8

Eine bessere Möglichkeit, den Ort in JS festzulegen, ist über:

%Vor%

Ob Sie PHP oder JS zur Verwaltung der Umleitung verwenden, hängt davon ab, was Ihr Code macht und wie. Aber wenn Sie in der Lage sind, PHP zu verwenden; Das heißt, wenn Sie PHP verwenden, um einen JS-Code zurück an den Browser zu senden, der den Browser einfach an eine andere Stelle weiterleitet, schlägt Ihnen die Logik vor, den mittleren Mann auszuschneiden und den Browser direkt über PHP zu informieren.

    
Wintermute 27.03.2013 09:09
quelle
8

Es hängt davon ab, wie und wann Sie den Benutzer auf eine andere Seite umleiten möchten.

Wenn Sie einen Benutzer sofort auf eine andere Seite umleiten möchten, ohne dass eine Website dazwischen angezeigt wird, sollten Sie die PHP header redirect-Methode verwenden.

Wenn Sie Javascript haben und eine Aktion des Benutzers dazu führen muss, dass er eine andere Seite eingibt, sollten Sie window.location verwenden.

Die meta Tag-Aktualisierung wird häufig auf Download-Sites verwendet, wenn Sie die Meldung "Ihr Download sollte automatisch starten" sehen. Sie können den Benutzer eine Seite laden lassen, eine bestimmte Zeit warten und dann ihn (z. B. zu einer zu ladenden Datei) ohne Javascript umleiten.

    
Butt4cak3 27.03.2013 09:18
quelle
3

PHP-Weiterleitungen sind besser, wenn Sie wie mit dem JavaScript, den Sie veranlassen, dass der Klient die Seite vor der Umleitung lädt, während mit dem PHP man die korrekte Überschrift sendet.

Allerdings sollte das PHP nicht in den & lt; head & gt; gehen, es sollte gehen bevor irgendeine Ausgabe an den Client gesendet wird, da dies sonst zu Fehlern führt.

Verwenden von & lt; meta & gt; Tags haben das gleiche Problem wie Javascript, wenn die erste Seite geladen wird, bevor die Umleitung ausgeführt wird. Serverseitige Redirects sind fast immer besser, wenn Sie sie verwenden können.

    
krisnoble 27.03.2013 09:06
quelle
2

Der erste Fall schlägt fehl, wenn JS ausgeschaltet ist. Es ist auch ein bisschen langsamer, da JS zuerst geparst werden muss (DOM muss geladen sein). JS ist jedoch sicherer, da das Ziel den Referrer nicht kennt und Ihre Weiterleitung möglicherweise verfolgt wird (Referrer sind im Allgemeinen nicht zuverlässig, aber das ist etwas).

Sie können auch das Meta-Refresh-Tag verwenden. Außerdem muss DOM geladen werden.

    
oleq 27.03.2013 09:05
quelle

Tags und Links