이 질문의 작성자와 정확히 같은 문제가 있습니다 : Preventing iframe caching in browser - 내 iframe 내의 url이 캐시됩니다. 필자는 헤더에 잔인한 안티 캐싱 정책을 요청하고 Fiddler는 youtube 비디오 (iframe 내의 페이지)도 캐싱되지 않는다는 것을 보여 주며 iframe을 사용하여 페이지를 다시로드 할 때마다 URL이 동일하다는 것을 보여줍니다.JavaScript가없는 iframe에서 URL 캐싱 방지
다른 점은 무엇입니까? 링크 된 질문에 대한 몇 가지 대답은 iframe이 JavaScript로 동적으로 작성되었다고 가정합니다. 하지만 PHP로 동적으로 삽입되는 매개 변수가 거의없는 정적 HTML로 iframe을 만들었습니다. 자바 스크립트를 통해 전체 웹 사이트의이 기능을 간단히 만들 수는 있지만 해결 방법은 PHP/HTML을 사용하는 것이 좋습니다.
So : JavaScript가없는 iframe 내에서 URL 캐싱을 방지 할 수 있습니까? 그렇다면 어떻게?
편집 - 내 코드 :
$videoUrl = 'xL0NjTDgwY4';
$x = rand();
echo '<iframe id="player2" type="text/html" ';
echo 'src="http://www.youtube.com/embed/'.$videoUrl.'?enablejsapi=1&origin=http://e-history.cz&n="'.$x;
echo '></iframe>';
피들러는 보여줍니다
호스트 : www.youtube.com
URL : /embed/M7lc1UVf-VE?enablejsapi=1&origin=http://example.com
캐싱 : 노 캐시; 만료일 : Tue, 27 Apr 1971 19:44:06 EST
내 웹의 외부 페이지 캐싱 : no-store, no-cache, must-revalidate, post-check=0, pre-check=0; Expires: Thu, 19 Nov 1981 08:52:00 GMT
필요한 경우 다른 필드를 입력하십시오.
피들러에 의해 표시되는 URL 내가 일반 HTML에서 iframe이가 표시되는 링크에 YouTube Player API (두 번째 코드 블록에서 iframe이 템플릿을 복사 할 때 내가 처음이 있었다 URL입니다.
내 (htaccess로의) 캐시 관련 헤더 :
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
그리고 메타의 : 피들러에 표시된
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
만료 날짜가 심지어 주문 제안 더 많은 안티 캐싱 헤더 when I though I had a caching problem. 이론적으로 이러한 복제가 문제를 일으킬 가능성은 있지만 가능성은 희박합니다.
관련성있는 정보가 하나 더 있습니다. 내 웹 사이트에 다른 iframe이 있으며 정상적으로 작동하며 Google지도의 경우를 제외하고는 캐싱이 필요하지 않습니다. 이 작동하는 iframe 코드 :
if(isset($kml)) {
$adr = 'https://maps.google.com?q='.$kml.'&ll=';
} else {
$adr = 'https://maps.google.com?ll=';
}
$adr .= $lat.','.$lon.'&z='.$zoom;
$adr .= '&t=h&output=embed';
echo '<iframe class="mapa" src="'.$adr.'"></iframe>';
각로드시 URL 끝 부분에 임의로 get 문자열을 추가하여 브라우저가 다른 페이지로 생각하도록 속일 수 있습니다. – cmorrissey
@ChristopherMorrissey :이 작업을 시도해 보았거나 완전히 다른 주소 (심지어는 다른 도메인)를 삽입하려고했습니다. Fiddler는 여전히 동일한 주소가 요청되었음을 보여줍니다. –
코드를 표시하면 다른 사람이 약간 다르게 수행해야하는 내용을 보게됩니다. – TecBrat