웹마스터 팁
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
제목 | 글쓴이 | 날짜 |
---|---|---|
주소를 지도링크하기 | 마루디자인 | 2015.03.04 |
도메인이 바뀐후 기본 URL을 바꿨지만 2차메뉴의 링크는 바뀌지 않은 경우. [9] | Ryuj | 2013.11.20 |
xpresseditor에 한글 글꼴 추가 [2] | YJSoft | 2013.10.25 |
XE 로그인을 아이디로 바꾸려는데 회원설정에서 회원가입 탭이 안보일때. | 불금 | 2015.02.27 |
PDF 뷰어 팁 [4] | 돼지코구뇽 | 2014.12.06 |
kakao Javascript SDK logout | 컴박살 | 2015.02.25 |
특정 게시판에서는 스팸 ip 동작 안하게 하기 [4] | Kxo | 2015.02.22 |
htaccess 보안 팁 | 포럼위트 | 2015.02.24 |
300기가 Zboard4->XE 이전기 [14] | forest535 | 2015.02.13 |
스케치북 최신버전에서 미리 덧글 입력해두기 [5] | LI-NA | 2015.02.18 |
추천 취소 기능 만들기 [5] | Summer | 2013.09.11 |
xe core 설치 화면 오류 있습니다. 이렇게 바꿔주세요. [2] | 한꼬마 | 2015.02.18 |
데이타 이전 시 xml 파일 임포트 속도 높이기 ^^ | forest535 | 2015.02.17 |
jquery 외부로드하기 [22] | DynamicLaser | 2014.04.07 |
XE와 별도 프로그램 연동시 세션공유 [15] | 똑디 | 2008.12.12 |
snoop가 안될때 curl 로 가져오기 [3] | 한꼬마 | 2015.02.13 |
템플릿등에서 PHP 제어 구조(if, for, foreach)의 대체 문법 적용 [3] | 총모아 | 2015.01.30 |
1.4.2.3 에서 1.4.3 이상 버전으로 업그레이드 시 백지화면 해결팁 [4] | 2년후 | 2010.12.15 |
회원가입후 24시간 이후 글작성 가능하기 [2] | 샵사이드 | 2015.02.09 |
인증메일을 gmail의 smtp로 보내기 [29] | showjean | 2012.07.17 |
보안에 취약해질수잇나요???
...
올려주신 애드온 설치하고 이것도 수정해줘야 하는건가요?
아니면 서로 다른 별개의 방법인가요?