제가 인터넷에서 검색하는 모든 것은 ASP입니다. PHP는 어떻게 뒤로 버튼이 캐시되는 것을 방지할 수 있나요?
제가 인터넷에서 검색하는 모든 것은 ASP입니다. PHP는 어떻게 뒤로 버튼이 캐시되는 것을 방지할 수 있나요?
탐색history.back()
및 기타 동작을 차단할 수 없습니다
페이지에 캐시가 없도록 설정하는 것을 고려할 수 있습니다
<code>$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); </code>
정말로 돌아가기를 거부하고 싶다면 다음 방법을 사용하여 시뮬레이션할 수 있습니다. 그러면 한 번만 뒤로 자동으로 현재 페이지로 점프할 수 있습니다. 상쾌
<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에 접속할 수도 있습니다.
사용자가 페이지에서 직접 링크를 클릭하면 클릭 이벤트가 발생합니다. JS는 AJAX를 통해 로컬 데이터를 로드 및 렌더링하고 .hash 위치를
로 설정합니다./index.php#/page/3
location.hash = "#/page/3";
브라우저는 location.hash 기록을 자체적으로 기억할 수 있으므로 듣기만 하면 됩니다. location.hash 변경 이벤트
(IE8 지원, IE7/6 지원 안 함)에서는 사용자가 브라우저의 돌아가기 버튼을 클릭할 때 페이지를 다시 로드하는 효과를 얻을 수 있습니다.hashchange
<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]+"&"+new Date().getTime(); //直接访问第2页 } });</code>위의 "SEO와 경험을 동등하게 강조한 하이퍼링크 디자인"은 포스터의 요구 사항을 충족할 수 있어야 하지만, 일정한 변형 비용이 필요합니다.
페이지가 로드되고 js가 페이지를 새로 고칩니다. location.href = location.href