2011-08-31 3 views
0

Node.js 및 jsdom을 사용하여 페이지의 모든 css/js/images를 찾아서 다운로드 한 다음 관련 URL (예 : wget --page-requisites --convert-links)로 다시 작성합니다. 하지만 jsdom이 이미 자원을 가져 오는 경우에도 모든 작업을해야하는지 궁금합니다. 만약 내가 FetchExternalResources를 켜면 jsdom이 그들과 무엇을합니까? 디스크에 저장할 수있는 메모리에 저장되어 있습니까?jsdom은 어디에서 리소스를 다운로드합니까?

require('jsdom').defaultDocumentFeatures = { 
    FetchExternalResources : ['script', 'css', 'link', 'img'], 
    ProcessExternalResources : true, 
    MutationEvents   : false, 
    QuerySelector   : false 
} 

답변

1

jsdom은 현재 자바 스크립트만을 가져 와서 메모리에 보관합니다. 다른 애셋을 가져 오려면 해당 기능을 구워야합니다. 예를 들어 doc.getElementsByTagName('img') 일 수 있으며 루프를 거쳐 이미지를 가져 와서 디스크에 저장할 수 있습니다.

+0

그래, 그게 내가 현재하고있는 일이야. http-get과 함께 꽤 사소한. 그러나 jsdom이 이미 그것을위한 지름길을 가지기를 바랬습니다. 경우에 대비하여 일부 인라인 CSS 나 그와 비슷한 배경 이미지가 누락 될 수 있습니다. 정리해 주셔서 감사합니다! – 12vunion

관련 문제