드림위버로 작업을 하면,
이미지가 들어 있는 화면을 html 로 만들때 MM_preloadImages 함수가 자동 생성되는데요..
간단한 jQuery 플러그인을 만들면 아래와 같이 만들 수 있답니다.
이미지 프리로드를 왜 하냐구요..? 화면에 그려지는 이미지들은, html 코드가 모두 읽혀지고..
해당 이미지들이 PC 에 다운로드 된 다음에야 웹브라우저가 화면에 렌더링을 하여 보여줍니다.
따라서 이미지가 많이 사용된 화면의 경우, 다운로드 받은 순서대로 이미지들이 열리는데..
간혹 이미지의 가로와 세로 사이즈에 따라 화면 레이아웃이 왔다갔다 하거든요.
이걸 막기 위해서 브라우저가 렌더링 하기 전에 이미지를 몽땅 받아 두는 거에요.
그러면, 첫 화면이 열리기 까지는 시간이 걸리겠지만..
그 다음 부터는 화면이 짠 한 방에 열리는 거죠. 이미지는 최소화 하면 좋긴 하지만, 심미성을 보태려면 필요하거든요.
원문. http://engineeredweb.com/blog/09/12/preloading-images-jquery-and-javascript
(function($) { // 이 부분은 다른 javascript 프레임웍과 충돌하는 것을 방지하기 위해 사용, jQuery 만 사용한다면 불필요
var cache = []; // 여기서 전역으로 선언
// Arguments are image paths relative to the current page.
$.preLoadImages = function() {
var args_len = arguments.length;
for (var i = args_len; i--;) { // i++ 보다 i-- 가 더 빠른 거 아시죠? 수십개 정도 까지야 비슷하지만, 습관이 중요
var cacheImage = document.createElement('img'); // 이건 pure javascript DOM 구조
cacheImage.src = arguments[i];
cache.push(cacheImage);
}
}
})(jQuery)
사용 방법은..
jQuery.preLoadImages("image1.gif", "/path/to/image2.png");
또는 $.preLoadImages(a, b, c, ...) 이렇게 필요한 만큼 사용하면 되겠군요.
'Local Oriented > jQuery' 카테고리의 다른 글
[모음글] jQuery 로 form validation 요소 제어, input/select/textarea (4) | 2011.11.03 |
---|---|
jQuery serialize, 파라미터가 제대로 체크되었는지 확인하는 용도로 좋을 듯.. (0) | 2011.10.27 |
jQuery 플러그인 모음, 별점 (0) | 2011.10.19 |
jQuery Ajax, FAQ 를 웹에디터로 관리할때 아코디언 목록이 1건만 표시될 때의 처리 (방법론) (1) | 2011.10.08 |
[모음] jQuery Slide 슬라이드/스크롤 (2) | 2011.10.06 |