웹마스터 팁
jquery 외부로드하기
2014.04.07 01:09
외부로드의 이점
1. 호스팅 트래픽을 절감할 수 있습니다.
2. 요청이 서버에 줄어들어 사용자들이 더 빠르게 사용할 수 있습니다.
해당 방식을 이용함으로써 생기는 문제는, 1.5버젼대로 한정하여 보안에 취약해질 수 있습니다.
XE 1.5버젼
1. (xe설치경로)/classes/frontendfile/FrontEndFileHandler.class.php 를 연다.
열고나서 108번째 줄의 :// 를 임의지정하여 수정(if문을 삭제해도 된다.)
2. (xe설치경로)/classes/display/HTMLDisplayHandler.php 를 연다.
열고나서 function _loadJSCSS() 를 찾아 그 아래의 } else { 문에 jquery.min.js를 아래와 같이 수정한다.
$oContext->loadFile(array('http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js', 'head', '', -100000), false);
수정을 마쳤으면 저장하자.
XE 1.7버젼
1. (XE설치경로)/classes/display/HTMLDisplayHandler.php를 연다
2. 410번줄과 411번줄을 삭제, 다음과 같은 내용으로 대체한다
$oContext->loadFile(array('///ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js', 'head', 'lt IE 9', -111000), true);
$oContext->loadFile(array('///ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js', 'head', 'gte IE 9', -110000), true);
$oContext->loadFile(array('///ajax.aspnetcdn.com/ajax/jquery.migrate/jquery-migrate-1.2.1.min.js', 'head', 'gte IE 9', -109000), true);
댓글 22
-
루팡쿠팡
2014.04.07 06:52
-
DynamicLaser
2014.04.07 11:19
XE코어에는 jQuery와 관련되어 2개가 들어가있습니다. 전체적인 기능을 하는 jQuery의 코어, 그리고 디자인을 담당하는 jQuery UI가 있습니다. 제 애드온은 jQuery UI만 밖에서 불러오는거구요, 이 팁까지 적용하시면 완벽하게 jQuery 코어까지 외부에서 불러올 수 있습니다.
1.5버젼대에서는 파일의 위치를 검사하여 검증하는 부분을 삭제하는것이기 때문에, 상대적으로 취약해질 수 밖에 없습니다.
-
socialskyo
2014.04.07 11:39
다이나믹 레이저님 !! 유용한 팁 너무 감사 드립니다.
-
루팡쿠팡
2014.04.07 17:44
1.7버전대는 괜찮나요? 여러번 질문해서 죄송합니다. ㅠ
-
DynamicLaser
2014.04.07 17:45
네 괜찮습니다~
-
루팡쿠팡
2014.04.07 19:32
/** * import basic .js files. * @return void */ function _loadJSCSS() { $oContext = Context::getInstance(); $lang_type = Context::getLangType(); // add common JS/CSS files if(__DEBUG__) { $oContext->loadFile(array('./common/js/jquery.js', 'head', '', -100000), true); $oContext->loadFile(array('./common/js/x.js', 'head', '', -100000), true); $oContext->loadFile(array('./common/js/common.js', 'head', '', -100000), true); $oContext->loadFile(array('./common/js/js_app.js', 'head', '', -100000), true); $oContext->loadFile(array('./common/js/xml_handler.js', 'head', '', -100000), true); $oContext->loadFile(array('./common/js/xml_js_filter.js', 'head', '', -100000), true); $oContext->loadFile(array('./common/css/xe.css', '', '', -1000000), true); } else { $oContext->loadFile(array('./common/js/jquery.min.js', 'head', '', -100000), true); $oContext->loadFile(array('./common/js/x.min.js', 'head', '', -100000), true); $oContext->loadFile(array('./common/js/xe.min.js', 'head', '', -100000), true); $oContext->loadFile(array('./common/css/xe.min.css', '', '', -1000000), true); } // for admin page, add admin css if(Context::get('module') == 'admin' || strpos(Context::get('act'), 'Admin') > 0) { if(__DEBUG__) { $oContext->loadFile(array('./modules/admin/tpl/css/admin.css', '', '', 10), true); $oContext->loadFile(array("./modules/admin/tpl/css/admin_{$lang_type}.css", '', '', 10), true); $oContext->loadFile(array("./modules/admin/tpl/css/admin.iefix.css", '', 'ie', 10), true); $oContext->loadFile('./modules/admin/tpl/js/admin.js', true); $oContext->loadFile(array('./modules/admin/tpl/css/admin.bootstrap.css', '', '', 1), true); $oContext->loadFile(array('./modules/admin/tpl/js/jquery.tmpl.js', '', '', 1), true); $oContext->loadFile(array('./modules/admin/tpl/js/jquery.jstree.js', '', '', 1), true); } else { $oContext->loadFile(array('./modules/admin/tpl/css/admin.min.css', '', '', 10), true); $oContext->loadFile(array("./modules/admin/tpl/css/admin_{$lang_type}.css", '', '', 10), true); $oContext->loadFile(array("./modules/admin/tpl/css/admin.iefix.min.css", '', 'ie', 10), true); $oContext->loadFile('./modules/admin/tpl/js/admin.min.js', true); $oContext->loadFile(array('./modules/admin/tpl/css/admin.bootstrap.min.css', '', '', 1), true); $oContext->loadFile(array('./modules/admin/tpl/js/jquery.tmpl.js', '', '', 1), true); $oContext->loadFile(array('./modules/admin/tpl/js/jquery.jstree.js', '', '', 1), true); } } } /** * import basic .js files for mobile */ private function _loadMobileJSCSS() { $oContext = Context::getInstance(); $lang_type = Context::getLangType(); // add common JS/CSS files if(__DEBUG__) { $oContext->loadFile(array('./common/css/mobile.css', '', '', -1000000), true); } else { $oContext->loadFile(array('./common/css/mobile.min.css', '', '', -1000000), true); } } } /* End of file HTMLDisplayHandler.class.php */ /* Location: ./classes/display/HTMLDisplayHandler.class.php */
-
루팡쿠팡
2014.04.07 19:33
이렇게 되어있는데요..
@DynamicLaser 님! 저는 1.7대 버전인데요.. 410번줄과 411번줄이 없습니다..ㅠㅠ
-
DynamicLaser
2014.04.07 20:03
1.5버젼대 아니신가요? 파일목록이 1.5버젼대네요.
-
루팡쿠팡
2014.04.07 21:55
어라..Your version: 1.7.3.7 이라 되었습니다만...
파일목록은 1.5인가요..???
-
DynamicLaser
2014.04.07 22:02
아 제가 잘못알고 있었네요 T_T
1.7.3.7버젼보단 1.7.4버젼대로 업그레이드하셔서 이용하시는걸 추천드려요(jquery 버젼이 상당히 낮아요)
그래도 하시겠다면
지금 올려주신 소스의 405번째 줄의 내용을
$oContext->loadFile(array('///ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js', 'head', , -110000), true);
로 바꿔주세요.
-
루팡쿠팡
2014.04.07 22:16
댓글 감사합니다^^
lt IE 9 랑 gte IE 9 이것 빼준것이 너무 궁금합니다 ㅎ
-
루팡쿠팡
2014.04.07 22:20
헛.. 백지상태되네요...ㅠㅠ
-
DynamicLaser
2014.04.07 22:23
백지로 되시면 원래대로 돌리세요 @_@.. 워낙 코어마다 방식이 들쑥날쑥해서..
-
루팡쿠팡
2014.04.07 22:24
ㅠㅠ..
이 방법 안해도 괜찮을려나용...?
-
DynamicLaser
2014.04.07 22:30
막 속도가 한번에 확 빨라지고 트래픽이 한번에 확 줄어드는건 아니니까요. 안하셔도 괜찮습니다~ ^^
그냥 요건 하시면 더 좋은거에요.
-
루팡쿠팡
2014.04.07 22:40
그렇군요.. 근데 이건 어떤 쓰임새인가요? 그냥 궁금해서용..
-
DynamicLaser
2014.04.07 22:45
lt IE 9, gte IE 9 말씀하시는건가요?
less than IE 9(IE9보다 낮으면), grater-than or equal IE 9(IE 9이거나 IE 9보다 높으면)의 줄임말입니다.
자세한 설명은.. http://msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx 이쪽을 참조하세요 ^^;
-
루팡쿠팡
2014.04.07 22:48
감사합니다^^
-
도라미
2014.04.07 20:32
jQuery ui 외부로드 애드온 처럼 unload로 제이쿼리 외부로드가 불가능 한가요?
-
DynamicLaser
2014.04.07 20:48
네, Context 혹은 FrontEndFileHandler로 조절할 수 없는 범위내에 있는것같아요
-
댑펑
2015.02.17 17:55
현재 제이쿼리 관련하여 트래픽이 가장 많이 발생하는게 아래 두개의 파일 같습니다.
1. /common/js/plugins/ui/jquery-ui.min.js
2. /common/js/jquery.min.js 1에 관련해서는
http://www.xpressengine.com/index.php?mid=download&package_srl=22673736
위의 애드온을 사용하면 되나요?
2에 관련해서는 본문의 수정방법대로 하고 싶은데 410번과 411번이라는 번호가 맞지 않는 듯 합니다. 행번호 보다는 "어떠어떠한 내용을" "어떠어떠한 내용으로 바꿔라"고 알려주시면 더 알기 쉬울 듯 합니다.
참고로 저는 1.7.10 버전을 사용중입니다.
-
이즈야
2015.02.17 18:43
https://www.xpressengine.com/index.php?mid=download&package_id=22677441
제목 | 글쓴이 | 날짜 |
---|---|---|
포인트복권 팝업창 말고 현재창에서 바로 사용하기! [1] | 바가G | 2014.04.28 |
유챗 팝업창으로 만들기 [1] | oscarmike | 2014.04.26 |
도움안될 것 같은 람보의 주옥같은 팁1 (스케치북 스킨에서 ctrl+enter키로 댓글작성 완료하기) [5] | BJ람보 | 2014.04.26 |
머니시스템 보유머니 출력하기 [13] | oscarmike | 2014.04.24 |
회원가입시 아이피 기록하기 [10] | 수직상승 | 2014.04.24 |
css를 이용한 페이지 인식 | 헤이즈디자인 | 2014.04.23 |
Windows Server 이벤트 로그 정리하기 | StyleRoot | 2014.04.20 |
Windows Server 에서 세션 최적화 | StyleRoot | 2014.04.20 |
가비아에서 웹호스팅 관련 팁 [1] | JerryKim | 2014.04.19 |
무한 스크롤 스크립트 [4] | 웹빌드 | 2014.04.16 |
XE 업데이트후 갑자기 CSS/JS등이 403 오류가 날때 | YJSoft | 2014.04.16 |
include용 파일에는 닫는 php문이 없다? | YJSoft | 2014.04.14 |
NULL/XMAS 패킷 포트 스캐닝 방지 방안 | 고구마군 | 2014.04.12 |
<div>에 ajax html 넣기 [3] | 웹빌드 | 2014.04.10 |
xe 쪽지 보내기창에 파일첨부하기 연동하는 팁 [7] | 졸라맨 | 2014.04.09 |
장비 침입 탐지 및 자동 ip 차단 프로그램 소개 [4] | 고구마군 | 2014.04.09 |
Windows IIS 에서 F5 연타 방지하기 (mod_evasive , limit_req) [3] | StyleRoot | 2014.04.08 |
jquery 외부로드하기 [22] | DynamicLaser | 2014.04.07 |
부트스트랩 css 팁 [3] | 돼지코구뇽 | 2014.04.05 |
관리자를 제외하고는 타회원의 회원정보 보기를 막는 방법 [1] | sejin7940 | 2014.04.04 |
보안에 취약해질수잇나요???
...
올려주신 애드온 설치하고 이것도 수정해줘야 하는건가요?
아니면 서로 다른 별개의 방법인가요?