2013-04-13 8 views

Odpowiedz

14

Nie musi to zrobić tylko z CodeIgniter. Są to dwie metody, za pomocą których można przeładować (lub przekierować) stronę.

W nagłówku Location: wysyłasz numer 3xx status code (zwykle 301 lub 302) do przeglądarki klienta, co zwykle oznacza, że ​​zawartość tymczasowo się przesunęła. Użycie odpowiedniego kodu da klientowi więcej informacji o przyczynie przekierowania. Przydaje się to szczególnie w przypadku wyszukiwarek.

Przeglądarka nie musi pobierać całej zawartości strony przed wykonaniem przekierowania, ale robi to natychmiast, ponieważ pobiera kod statusu z serwera i zamiast tego przechodzi na nową stronę. W ten sposób nie złamiesz przycisku "wstecz" w przeglądarce.

Za pomocą metatagu lub nagłówka HTTP Refresh wysyła się zapytanie do przeglądarki klienta, aby odświeżyć stronę bez podawania jakichkolwiek informacji o przyczynie, dla której się to robi, lub oryginalnej i nowej treści. Przeglądarka musi najpierw pobrać całą zawartość strony, a następnie po upływie czasu (w sekundach) określonego w Odświeżeniu przekieruje na drugą stronę (zwykle 0 sekund).

Jeśli użytkownik kliknie przycisk "wstecz" w przeglądarce, nie będzie działał tak, jak powinien, ponieważ zabierze go na poprzednią stronę i ponownie użyje funkcji Odśwież i wyśle ​​go do następnego, od miejsca, w którym nacisnął przycisk przycisk.

Powyższe stwierdzenia są zgodne z artykułem W3C

2

CodeIgniter przekierować metoda:

/** 
* Header Redirect 
* 
* Header redirect in two flavors 
* For very fine grained control over headers, you could use the Output 
* Library's set_header() function. 
* 
* @access public 
* @param string the URL 
* @param string the method: location or redirect 
* @return string 
*/ 
if (! function_exists('redirect')) 
{ 
    function redirect($uri = '', $method = 'location', $http_response_code = 302) 
    { 
     if (! preg_match('#^https?://#i', $uri)) 
     { 
      $uri = site_url($uri); 
     } 

     switch($method) 
     { 
      case 'refresh' : header("Refresh:0;url=".$uri); 
       break; 
      default   : header("Location: ".$uri, TRUE, $http_response_code); 
       break; 
     } 
     exit; 
    } 
} 

PHP header

http://php.net/manual/en/function.header.php

Powiązane problemy