PHP怎樣實現點擊瀏覽器的返回按鈕回到頁面時重新整理該頁面?

來源:互聯網
上載者:User
在網上搜的都是ASP的 PHP怎麼阻止後退按鈕的緩衝呢?

回複內容:

在網上搜的都是ASP的 PHP怎麼阻止後退按鈕的緩衝呢?

  1. 無法阻止瀏覽的history.back()等行為

  2. 可以考慮設定頁面為無緩衝

    $nocache = array(    'Expires' => '0',    'Cache-Control' => 'no-store,private, post-check=0, pre-check=0, max-age=0',    'Pragma' => 'no-cache');foreach($nocache as k => $v)    header($k.': '.$v);
  3. 如果真的要拒絕後退,可以使用以下方法類比,考慮做一道跳轉,這樣後退一次,會自動跳到當前頁面,近似於重新整理

    header('Location: index.php');

拿首頁分頁連結來說:
3
搜尋引擎的爬蟲會根據href訪問/index.php?page=3擷取第3頁資料,利於SEO.
使用者在瀏覽器裡右鍵選擇"在新標籤頁中開啟"也能正常訪問到/index.php?page=3.
如果使用者在頁面直接點選連結,則觸發click事件,由JS通過AJAX載入並渲染局部資料,以及設定location.hash為/index.php#/page/3.
location.hash = "#/page/3";
瀏覽器能夠自行記住location.hash記錄,我們只需監聽location.hash改變的事件hashchange(支援IE8,不支援IE7/6)就能實現使用者點擊瀏覽器返回按鈕時重新載入頁面的效果.

$(window).on("hashchange", function(){    alert(location.hash); //輸出#/page/2    var arr = location.hash.split("/"); // ["#", "page", "2"]    if(arr[1] == "page") {        page(arr[2]); //AJAX局部載入第2頁資料        //location.href = "/index.php?page="+arr[2]+"&"+new Date().getTime(); //直接存取第2頁    }});

上面這種"SEO和體驗並重的超連結設計"應該能滿足樓主需求,不過需要一定的改造成本.

頁面載入完成js重新整理頁面location.href = location.href

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.