/*
* 출 처 : PHP스쿨 (www.phpschool.com)
* 올린이 : Fencer
*/
제목 그대로 PHP로 생성한 프레임에서 새로고침할 때 페이지 유지하기입니다.
필요하신 분들 많았으리라 봅니다. ;;
전부터 PHP를 이용해 만든 프레임 페이지에서 브라우저의 refresh 버튼을 누를 때
현재 보고 있는 페이지가 아니라 src=''로 정해줬던 페이지가 뜨는 걸 보고
브라우저가 html 페이지와 php 페이지 간에 뭔가 차이를 느낀다고 생각해 왔는데..
뭐 전에는 별 필요성을 못 느꼈기 때문에 + 귀찮아서 그냥 두었다가
'XXXX XX를 위한 것인데 대충 만들 수 없다'는 자세로 6^_^;;
Q&A나 Tip&Tech를 좀 찾아봤더니..
아무도 답변이 없었더군요. ㅡoㅡ;
-----------------------------------------------------------------------------
$LastModified = gmdate("D d M Y H:i:s", filemtime($HTTP_SERVER_VARS[SCRIPT_FILENAME]));
header("Last-Modified: $LastModified GMT");
header("ETag: \"$LastModified\"");
-----------------------------------------------------------------------------
보시면 뭔지 금방 아시겠죠? ^_^
복사해다가 프레임 생성하는 파일의 맨 위에 넣으시면 됩니다.
다른 브라우저는 확인 안 해 봤고.. 익쑤뿔로러만.. 확인했습니다.
'자동으로', '페이지를 열 때마다' 모두 잘 되는군요.
일반 html 문서와 비교해 볼 때 (일반적으로) PHP가 뿌려주는 내용은
html content 부분은 똑같지만, header의 Last-Modified 의 시각이 매번 달라집니다.
(사실 아예 없습니다. -_-;;; 원래 동적인 resource니까 당연하지요.)
따라서 PHP에서 header에 Cache-Control을 최대로 잡아줘도
새로 받아온 수정 시각을 바탕으로 frame 전체를 새로고침하는 것으로 보입니다.
그래서 PHP 역시 header에 파일의 실제 수정 시각을 넣어주도록 하였습니다.
ETag는 HTTP/1.1 문서에 있길래 넣어봤습니다.
The entity tag MAY be used for comparison with other entities from the same resource.
그럼~ 좋은 하루 되세요~ ^_^/"<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]</div>
* 출 처 : PHP스쿨 (www.phpschool.com)
* 올린이 : Fencer
*/
제목 그대로 PHP로 생성한 프레임에서 새로고침할 때 페이지 유지하기입니다.
필요하신 분들 많았으리라 봅니다. ;;
전부터 PHP를 이용해 만든 프레임 페이지에서 브라우저의 refresh 버튼을 누를 때
현재 보고 있는 페이지가 아니라 src=''로 정해줬던 페이지가 뜨는 걸 보고
브라우저가 html 페이지와 php 페이지 간에 뭔가 차이를 느낀다고 생각해 왔는데..
뭐 전에는 별 필요성을 못 느꼈기 때문에 + 귀찮아서 그냥 두었다가
'XXXX XX를 위한 것인데 대충 만들 수 없다'는 자세로 6^_^;;
Q&A나 Tip&Tech를 좀 찾아봤더니..
아무도 답변이 없었더군요. ㅡoㅡ;
-----------------------------------------------------------------------------
$LastModified = gmdate("D d M Y H:i:s", filemtime($HTTP_SERVER_VARS[SCRIPT_FILENAME]));
header("Last-Modified: $LastModified GMT");
header("ETag: \"$LastModified\"");
-----------------------------------------------------------------------------
보시면 뭔지 금방 아시겠죠? ^_^
복사해다가 프레임 생성하는 파일의 맨 위에 넣으시면 됩니다.
다른 브라우저는 확인 안 해 봤고.. 익쑤뿔로러만.. 확인했습니다.
'자동으로', '페이지를 열 때마다' 모두 잘 되는군요.
일반 html 문서와 비교해 볼 때 (일반적으로) PHP가 뿌려주는 내용은
html content 부분은 똑같지만, header의 Last-Modified 의 시각이 매번 달라집니다.
(사실 아예 없습니다. -_-;;; 원래 동적인 resource니까 당연하지요.)
따라서 PHP에서 header에 Cache-Control을 최대로 잡아줘도
새로 받아온 수정 시각을 바탕으로 frame 전체를 새로고침하는 것으로 보입니다.
그래서 PHP 역시 header에 파일의 실제 수정 시각을 넣어주도록 하였습니다.
ETag는 HTTP/1.1 문서에 있길래 넣어봤습니다.
The entity tag MAY be used for comparison with other entities from the same resource.
그럼~ 좋은 하루 되세요~ ^_^/"<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]</div>
댓글 9개
> 아무도 답변이 없었더군요. ㅡoㅡ;
~라는 표현은 정말 어불성설입니다.
>>> 이 부분의 언급은 제가 성급했습니다.
최소한 어떤 팁을 찾거나 해결책을 찾으려하는 유저라면,
자신이 무엇(어떤 것)을 찾으려 하는지는 파악하고 있어야 합니다.
'새로고침'이라는 키워드를 떠올렸다면,
쉽사리 찾을 수 있었을 텐데요.
인용한 게시물이었을 경우 게시물 자체에 대한 혼동을 막기위해서라도,
게시물의 최하단쪽에 출처를 명시하는 것도 일반적인 상식이라고 볼 수 있습니다.
단순히 Ctrl-C, Ctrl-V라고 할지라도,
해당 내용을 끌어오는 사용자가 어느정도 이해를 하거나,
무슨 내용인가는 파악하고 있어야 합니다.
또한 해당 내용을 끌어오기 전에 이미 중복이 되어 있는지의 여부를
파악하기 위한 선행작업도 수행했어야 된다고 봅니다.
'제목+내용'이던, '제목', '내용'이던지 언급된 게시물과 관련된 내용은,
특별한 검색능력이 없더라도 기본적인 검색옵션으로 찾을 수 있는 내용입니다.
특정 카테고리 여하를 막론하고 그 정도 되는 내용을 찾을수도 없다면
과연 제대로 찾아보려는 노력을 했다고 할 수 있을까요?
'새로고침'이라는 용어가 전문용어일까요?
~라는 표현은 정말 어불성설입니다.
>>> 이 부분의 언급은 제가 성급했습니다.
최소한 어떤 팁을 찾거나 해결책을 찾으려하는 유저라면,
자신이 무엇(어떤 것)을 찾으려 하는지는 파악하고 있어야 합니다.
'새로고침'이라는 키워드를 떠올렸다면,
쉽사리 찾을 수 있었을 텐데요.
인용한 게시물이었을 경우 게시물 자체에 대한 혼동을 막기위해서라도,
게시물의 최하단쪽에 출처를 명시하는 것도 일반적인 상식이라고 볼 수 있습니다.
단순히 Ctrl-C, Ctrl-V라고 할지라도,
해당 내용을 끌어오는 사용자가 어느정도 이해를 하거나,
무슨 내용인가는 파악하고 있어야 합니다.
또한 해당 내용을 끌어오기 전에 이미 중복이 되어 있는지의 여부를
파악하기 위한 선행작업도 수행했어야 된다고 봅니다.
'제목+내용'이던, '제목', '내용'이던지 언급된 게시물과 관련된 내용은,
특별한 검색능력이 없더라도 기본적인 검색옵션으로 찾을 수 있는 내용입니다.
특정 카테고리 여하를 막론하고 그 정도 되는 내용을 찾을수도 없다면
과연 제대로 찾아보려는 노력을 했다고 할 수 있을까요?
'새로고침'이라는 용어가 전문용어일까요?
어디에 넣어줘야 적당한 위치죠?
_head.php ???
head.php ???
head.sub.php ???
------------------------------------------------------------------------------------------------------------------
header("Content-Type: text/html; charset=$g4[charset]");
$gmnow = gmdate("D, d M Y H:i:s") . " GMT";
header("Expires: 0"); // rfc2616 - Section 14.21
header("Last-Modified: " . $gmnow);
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: pre-check=0, post-check=0, max-age=0"); // HTTP/1.1
header("Pragma: no-cache"); // HTTP/1.0
-------------------------------------------------------------------------------------------------------------------
그누보드4 head.sub.php에 선언되어 있는 부분입니다.
위 소스와 게시물의 차이점을 알고싶습니다.
게시물의 방법을 적용해봤지만 새로고침시 브라우저에 나온 도메인으로 이동하는군요.
어디가 잘못된거지 알려주세요. 혹시 삽입 위치가 잘못된건지.
전 head.sub.php의 header선언부의 바로 아래에 추가해줬습니다.
_head.php ???
head.php ???
head.sub.php ???
------------------------------------------------------------------------------------------------------------------
header("Content-Type: text/html; charset=$g4[charset]");
$gmnow = gmdate("D, d M Y H:i:s") . " GMT";
header("Expires: 0"); // rfc2616 - Section 14.21
header("Last-Modified: " . $gmnow);
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: pre-check=0, post-check=0, max-age=0"); // HTTP/1.1
header("Pragma: no-cache"); // HTTP/1.0
-------------------------------------------------------------------------------------------------------------------
그누보드4 head.sub.php에 선언되어 있는 부분입니다.
위 소스와 게시물의 차이점을 알고싶습니다.
게시물의 방법을 적용해봤지만 새로고침시 브라우저에 나온 도메인으로 이동하는군요.
어디가 잘못된거지 알려주세요. 혹시 삽입 위치가 잘못된건지.
전 head.sub.php의 header선언부의 바로 아래에 추가해줬습니다.
세상이슈
19년 전
php 복잡하군요
게시글 목록
| 번호 | 제목 |
|---|---|
| 9186 |
Flash
플래시 프리로딩 소스
3
|
| 9168 | |
| 9167 |
JavaScript
[FLV동영상] FLV 반복재생하기
|
| 28537 | |
| 9163 | |
| 28532 | |
| 9160 | |
| 9155 |
Flash
wmode
4
|
| 28530 |
HTML
특정 IP 차단하기...
1
|
| 9150 |
Flash
플래시 flv(동영상) 사용경험담
4
|
| 9144 | |
| 28529 | |
| 9143 |
기타
Top으로 ver2
|
| 9141 |
JavaScript
제목에 첫 글자만 스타일적용과 문장의 첫라인 스타일 적용
1
|
| 9138 | |
| 28523 |
HTML
전화 번호 숫자만 빼오기
5
|
| 9132 | |
| 28521 | |
| 9131 | |
| 9130 |
Flash
창크기 자동 조절
|
| 9129 |
Flash
플래시 메뉴
|
| 28517 |
HTML
사진을 액자에 넣기(액자 만들기)
3
|
| 9126 | |
| 28515 |
HTML
초간단 스크롤
1
|
| 9123 |
JavaScript
메모하지 않으면 깜빡깜빡 잊어버리는 것들
2
|
| 9122 |
기타
빈 무비클립 만들기
|
| 9119 | |
| 9118 | |
| 9114 |
JavaScript
euc-kr 문서를 utf-8 로 변환
3
|
| 9111 | |
| 28514 |
HTML
잘되는 센드메일 수신이 안될때...
|
| 9109 | |
| 9108 |
기타
Ajax 흉내 내기
|
| 9105 |
JavaScript
포토샵에서 트랜스폼과 카피를 동시에 하는 방법
2
|
| 9100 | |
| 9097 |
JavaScript
mod_rewrite 설치 법
2
|
| 9096 | |
| 9093 |
JavaScript
포토샵의 블렌딩 모드
2
|
| 9089 |
JavaScript
opacity(투명도) 값 쉽게 먹이기.
3
|
| 9083 | |
| 28511 | |
| 9081 |
기타
서버정보검색
1
|
| 9077 |
기타
텍스트시계
3
|
| 9073 | |
| 9070 |
기타
Key 관련
2
|
| 28510 |
HTML
textarea 에 Tab기능 넣기
|
| 9069 | |
| 9068 |
MySQL
초보일지 FC4에서 가상호스트설정과정
|
| 9067 |
기타
pop3서버 설치 방법
|
| 9065 |
JavaScript
메뉴 생성 클래스
1
|
| 9064 | |
| 9063 |
JavaScript
qpopper(pop3) 설치
|
| 9061 | |
| 9060 | |
| 9059 | |
| 28509 |
HTML
자바스크립트 오류 메시지 감추기
|
| 9058 |
JavaScript
RTL8201BL 랜카드 잡으려면
|
| 9057 |
MySQL
mysql 설치후 실행오류 처리
|
| 9056 | |
| 28508 | |
| 9055 |
JavaScript
RedHat(레드햇) 9 설치 후 yum 설치
|
| 9054 | |
| 28507 |
HTML
삼바 설정 간단 쉬운 쉽게
|
| 9053 | |
| 9052 |
JavaScript
메일 릴레이 테스트
|
| 9051 | |
| 9050 | |
| 9049 | |
| 9048 | |
| 9038 | |
| 9033 |
JavaScript
브러시 집안들 브러시 지름을 쉽고 빠르게 조절하자~~~
4
|
| 9032 |
정규표현식
페도라 코어 3에서 APM 설치하기
|
| 9031 |
Linux
rsync를 이용한 미러링
|
| 9029 | |
| 9026 | |
| 9024 |
기타
vi 서비스 편집
1
|
| 9023 |
MySQL
리눅스에서 mysql DB설정
|
| 9022 |
MySQL
리눅스 에서 아파치와 php 설치
|
| 9017 |
Flash
일러스트 CS2와 플래시에서 패스따기
4
|
| 9015 | |
| 28502 | |
| 9013 | |
| 9001 | |
| 8998 |
MySQL
exif 사용하기 (ms 윈도우용)
2
|
| 8994 |
JavaScript
Apache 보안 팁...--;;;
3
|
| 8993 |
기타
[펌] $_FILES
|
| 8992 | |
| 8989 |
JavaScript
scp 사용법
2
|
| 8988 | |
| 8987 |
Flash
선따라 움직이기(초보)
|
| 8981 |
JavaScript
옥션처럼 소스보기 안되는곳에 적용하니까, 소스 보이는 방법
5
|
| 8978 | |
| 8974 |
MySQL
실수로 삭제한 mysql DB 복구방법
3
|
| 8973 |
JavaScript
mozilla DHTML ROWS INSERT & DELETE
|
| 8971 | |
| 8970 | |
| 8963 |
JavaScript
제가 집에서 사용하는 서버를 살짝 공개합니다.^^
6
|
| 8959 | |
| 8953 |
JavaScript
ssh 무차별 로그인 공격 막기
5
|
| 8950 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기