2012-06-06 3 views
1

웹 페이지에 버튼이 있습니다. 버튼을 클릭 할 때마다 특정 내용 (최대 5MB까지 올라갈 수있는 이미지 파일의 전체 목록)이 비동기 적으로 미리로드되고로드가 완료되면 웹 페이지에 추가됩니다.JavaScript 이미지 미리로드 순서 (Ariel Flesler의 프리 로더)를 강제로 멈추게 할 수 있습니까?

그러나 첫 번째로드 사전 절차가 완료되기 전에 단추를 다시 클릭 한 다음 두 번째 사전로드 절차를 시작하는 경우에만 사전로드 절차를 중지하는 것이 좋습니다. 어떻게 강제 정지시킬 수 있습니까?

그런데 나는 Ariel Flesler's jQuery based image preloader을 사용하고 있습니다.

미리 감사드립니다.

+0

아마도 사전로드를 위해 플러그인을 수정하거나 자체 솔루션을 만들어야 할 것입니다. – jcubic

+0

플러그인을 수정하십시오. 그러나 어떻게? –

+0

가장 좋은 방법은 이미지 태그'$ ('') .attr ('src', image_url);을 만드는 것입니다. 'setTimeout'을 사용하여 작은 지연으로 이미지 용 태그를 만들 수 있습니다. 버튼을 클릭하면 다음'setTimeout'을 호출 할 수 없습니다. 클릭과 해제를 나타내는 플래그를 유지할 수 있습니다. – jcubic

답변

2

이미지가 두 개인 장소가 있습니다. img 변수와 $preload.cache 어레이가 있습니다.

당신은이 라인

var imgs = $(Array(settings.threshold+1).join('<img/>')) 
     .load(handler).error(handler).bind('abort',handler).each(fetch); 

하고 전달할 수 후 수 있습니다

settings.control(function() { 
    imgs = null; 
    $preload.cache = []; 
}); 

이 기능은 중단 추가 할 수 있습니다

var _abort = null; 
$('<your button>').click(function() { 
    if (_abort) { 
     _abort(); 
    } 
    $.preload('#images img', { 
      placeholder:'placeholder.jpg', 
      notFound:'notfound.jpg' 
      control: function(abort) { 
        _abort = abort; 
      } 
    }); 
}); 

그것은 작동해야하지만 난 그것이 확실한 지 모르겠다.