目錄
回覆內容:
首頁 後端開發 php教程 PHP怎麼實作點擊瀏覽器的返回按鈕回到頁面時刷新該頁面?

PHP怎麼實作點擊瀏覽器的返回按鈕回到頁面時刷新該頁面?

Dec 01, 2016 am 12:56 AM
php

在網路上搜尋的都是ASP的 PHP怎麼阻止後退按鈕的快取呢?

回覆內容:

在網路上搜尋的都是ASP的 PHP怎麼阻止後退按鈕的快取呢?

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

  2. 可以考慮設定頁面為無快取

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

    <code>header('Location: index.php');</code>
    登入後複製

拿首頁分頁連結來說:
<a href="/index.php?page=3" onclick="page(3);return false;">3</a>
搜尋引擎的爬蟲會根據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)就能實現使用者點擊瀏覽器返回按鈕時重新載入頁面的效果.

<code>$(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]+"&amp;"+new Date().getTime(); //直接访问第2页
    }
});</code>
登入後複製

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

頁面載入完成js刷新頁面location.href = location.href

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南

CakePHP 日期和時間 CakePHP 日期和時間 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和時間

CakePHP 專案配置 CakePHP 專案配置 Sep 10, 2024 pm 05:25 PM

CakePHP 專案配置

CakePHP 檔案上傳 CakePHP 檔案上傳 Sep 10, 2024 pm 05:27 PM

CakePHP 檔案上傳

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

討論 CakePHP 討論 CakePHP Sep 10, 2024 pm 05:28 PM

討論 CakePHP

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發

See all articles