웹마스터 팁

팁이라기보다 아이디어 차원에서 올려봅니다.

보다 좋은 방법이 있으신 분은 같이 공유해주시면 고맙겠습니다.


보통 index.html 등 일반문서에 XE에서 만든 최근게시물 같은 위젯을 넣을 때는

'페이지'를 생성해 위젯을 넣은 후 일반문서에 iframe으로 삽입하는 방법이 많이 쓰입니다.

하지만 접속할 때마다 DB를 불러다 처리하기 때문에 렉도 있고 서버 부하도 생각해볼 문제입니다.

그래서 캐시파일을 이용해보는 방법을 생각해봤습니다.


zbxe 폴더에 XE가 설치되어 있다고 가정하고

XE에서 생성한 최근게시물을 index.html에 넣는 작업을 해보겠습니다. 


1. XE의 관리자페이지 > 서비스관리 에서 예를 들어 latest란 이름으로 페이지를 생성최근게시물을 넣습니다. 

캐싱 시간은 1~5분 정도로 적당히 잡습니다.


2. 이 latest 페이지에서 설정을 클릭하면 주소표시줄에 'module_srl=번호'가 나옵니다.

가령 이 번호가 66이라고 하면 zbxe/files/cache/page66.ko.cache.php 란 파일이 생긴 것을 확인할 수 있습니다.

이것이 이 latest 페이지의 캐시파일입니다.


3. index.html 맨 위에 다음을 추가합니다.

<? $latest = 'zbxe/files/cache/page/66.ko.cache.php'; ?>


그리고 최근게시물을 넣을 자리에 다음과 같이 적습니다.

<? include $latest ?>


4. 이러면 최근게시물이 index.html에 출력은 됩니다만 

css가 없어서 보기 안쓰러우니 최근게시물의 css도 불러줍니다

index.html의 <head>와 </head> 사이에 다음을 넣습니다. 


<link rel="StyleSheet" HREF="http://.../zbxe/widgets/(사용한 최근게시물 경로명)/css/(css파일명).css" type="text/css"> 


(추가) 만약 index.html 글이 깨져서 출력될 경우 UTF-8로 저장하시기 바랍니다.


위치 맞추기와 css 문제로 좀 골치를 앓을 수 있겠지만 

일단 include하는 과정까지는 그리 어렵지 않습니다.

문제는 여기서부터입니다.


XE에서 캐시파일을 만드려면 반드시 접속이 있어야 합니다.  

하지만 위에서 만든 latest란 페이지를 접속하는 사람은 관리자 외에는 없기 때문에

캐시파일이 갱신이 안되는 문제가 발생합니다.


따라서 latest란 페이지에 일정하게 접속을 일으키는 무언가가 필요한데 현재까지 이것을 해결하지 못했습니다.

앞서 아이디어 차원이라고 미리 말씀드린 것도 이러한 이유에서입니다.


다만 다음과 같은 꼼수를 부릴 수는 있습니다.


5. index.html파일이 위치한 곳에 latest.html 이란 파일을 만듭니다. 안에는 다음 한 줄을 적습니다.

<meta http-equiv='refresh' content='10;url=zbxe/?mid=latest'>


6. 위의 index.html 에서 <? include $latest ?> 바로 위에 다음을 추가합니다.

<iframe src="./latest.html" frameborder="0" width="0" height="0">


content='10;, 다시 말해 index.html에 접속해서 10초가 경과하면 

보이지 않는 iframe 내에서 zbxe/?mid=latest에 접속하게 되는 것입니다.

결국 index.html에 10초 이상 머문 방문자에게만 

latest페이지를 접속하게 만들어 캐시파일을 갱신시키는 셈입니다.


어느 정도 규모가 되는 사이트면 20~30초로 수정해도 됩니다. 

제 경우 20초로 설정해놓고 씁니다만 갱신에 문제는 없었습니다.

자신의 사이트에 맞는 수치를 찾아 설정하면 되겠습니다.


iframe에 넣는 것보다는 나은 방법이긴 합니다만

역시 이런 꼼수가 아닌 제대로 캐시파일을 일반문서에서 활용할 수 있는 방법이 있으면 합니다.


제목 글쓴이 날짜
textyle에서 카카오 보내기 버튼 넣기 웹빌드 2014.02.24
모바일 게시판에서 이미지 리사이즈 적용방법 [6] socialskyo 2014.02.24
SFTP 적용하기 [6] Seeean 2014.02.24
Specify image dimensions socialskyo 2014.02.26
누리고 + KCP 결제 모듈 사용시 "연동 모듈 호출 오류" 가 날때 [1] idkiller 2014.02.26
1.5버전대에서 1.7.4버전으로 업데이트시.. [4] 똑디 2014.02.26
nginx 에서 서브도메인 사용시 로그인유지방법 [3] garnecia 2014.02.26
[10원팁] 서버에 계정추가후 새로설치하는데 CSS가 깨진다? [3] 키스미베이베 2014.02.27
[팁 시리즈 1] 웹 사이트 이전 및 복구/백업(이)가 되지 않습니다! [6] Omega3 2014.02.28
정규식 문법 웹엔진 2014.02.28
해외 아이피 차단 방법입니다. [3] Flolida 2014.03.01
[팁 시리즈 2] 한글 도메인이나 영문 도메인 설정을 잘못 건드려서 사이트의 모든 기능이 거의 먹통입니다! Omega3 2014.03.01
방명록 댓글 줄바꿈 메디칼온 2014.03.03
xe 홈페이지 폰갭으로 묶을때 웹빌드 2014.03.03
페이지 모듈에서 다국어 기능 작동 안 하는 버그 패치법 [1] sejin7940 2014.03.04
폰갭 제작 어플 gcm 발송시 변수 웹빌드 2014.03.04
XE 어플로 만들때 PUSH 기능처리 방법 웹빌드 2014.03.06
css3 둥근테두리 만들기 낮은자 2014.03.06
css3 안쪽과 바깥쪽 그림자 만들기 입니다 file 낮은자 2014.03.06
자주 쓰이는 정규표현식 모음 투니페이퍼 2014.03.06