2013-05-18 4 views
1

새 이미지를 만들고 소스를 정의하는 경우 미리로드해야합니까? 예를 들어 : 링크가 좋은 것, 그래서base64로 인코딩 된 이미지를 사용하는 경우 이미지를 미리로드해야합니까?

var image = new Image(); 
image.src = 'data:image/jpeg;base64,/9j/4Q+sRXhpZgAATU0AKgAAAAgABw...'; 
// Append image to canvas. 

나는 몇 가지 테스트를 해 봤는데하지만 난 오히려 오히려 신뢰할 수있는 증거를 가지고 것입니다.

감사

답변

2

편집 : 사실 내가되었을 수도 있습니다 잘못 분명히 다른 브라우저는이 점에서 다르게 행동하고 이미지가 사용 가능한 상태가 폭의 같은 정보와 높이가 있지만 필요하지 않습니다. 나는이 정보를 계산하는 브라우저 기능이 non-blocking이고 당신이 onload을 듣고 있다고 가정하기 때문에 이것을 가정합니다.

그래, onload 이벤트를 수신하여 사용하기 전에 사용자 브라우저가 동적 이미지를로드했는지 확인하십시오.

이 정보를 바탕으로 : 당신이 그것을 사전로드하는 방법에 변수로 저장함으로써

: Should setting an image src to data URL be available immediately?

는 다음과 같은 조언을 무시 (내 대답에 컨텍스트를 제공하기 위해 남아있다). 이미지를 미리로드하면 데이터가 검색되고 저장됩니다. 변수에 이미 데이터가 저장되어 있습니다. 미리로드 할 항목은 무엇입니까?

변수 할당이 동기식이므로 이미지는 다음 코드에서 사용할 수 있습니다.

사전로드 지점은 일반적으로 이미지가 서버의 다른 위치에 있으며, 별도의 파일로드가 종종 비동기 적이므로 스크립트에서 이미지를 다운로드 할 때까지 기다리는 것을 보장합니다. 이미지를 인라인으로 작성하면 효과적으로 JavaScript 파일에 저장되며 동시에 다운로드됩니다.

+0

나는 그것을 다운로드 할 필요가 없다는 것을 알고있다; 데이터는 인라인 효과가 없지만 onload 이벤트에서 이미지를 래핑 할 필요가 없다는 뜻입니까? – lededje

+0

@lededje 나는 그렇다라고 말했을 것이지만, 나는 이것을 읽었다. ... http://stackoverflow.com/questions/4776670/should-setting-an-image-src-to-data-url-be-available-immediately 다른 브라우저가 다른 결과를 가져야하므로 제안해야합니다. –

관련 문제