로더는 모듈이나 스크립트의 소스 코드에 적용되는 변환입니다. 파일이나 HTML을 가져오거나 "로드"할 때 내부에 자바스크립트가 포함된 파일이나 HTML을 사전 처리할 수 있습니다. 따라서 로더는 다른 빌드 도구의 "작업"과 유사하며 프런트엔드 빌드 단계를 처리하는 강력한 방법을 제공합니다.
아이디어는 JS 프로그램을 다운로드하고 이전에 제공한 스크립트를 기반으로 일부 수정 사항을 포함하여 런타임 브라우저(webview2)에서 로컬로 기본적으로 실행하는 것입니다. 저는 이것을 고정 장치로서의 다중 배포라고 부릅니다.
const SINWAVES2URL= 'https://raw.githack.com/maxkleiner/maXbox4/master/assets/sinwavesjs.html'; aMS:= TMemoryStream.Create; try HttpGet(SINWAVES2URL, amS) writeln('urlcontent size: '+itoa((ams.size))); aMS.Seek(0, 0); memoHTML.lines.loadfromstream(aMs); //javascript fixture_ memoHTML.text:= StringReplace(memoHtml.text,'frequency = 20;','frequency = 30;',[rfReplaceAll]); memoHTML.text:= StringReplace(memoHtml.text,'Sine Wave</h3>','Sine Wave F30</h3>',[rfReplaceAll]); navigatetoString(memoHTML.text); finally aMS.Free end;
예를 들어 로더를 사용하면 웹사이트에 javascript 파일이 포함된 CSS를 로드하고 로컬 브라우저 webview2에서 실행하기 전에 JavaScript의 매개변수를 수정하도록 지시할 수 있습니다.
로더를 연결할 수 있습니다. 체인의 각 로더는 처리된 리소스에 변환을 적용합니다. 예를 들어 URL을 줄이 있는 메모의 스트림으로 로드하고, 두 개의 매개변수(이 예에서는 빈도와 제목)를 수정하고, NavigatetoString(memoHTML.text)을 사용하여 실행합니다. 브라우저에서:
with TEdgeViewForm.create(self) do begin PageControl1.ActivePageIndex := 1; edit1.text:= SINWAVES2URL; aMS:= TMemoryStream.Create; try HttpGet(SINWAVES2URL, amS) writeln('urlcontent size: '+itoa((ams.size))); aMS.Seek(0, 0); memoHTML.lines.loadfromstream(aMs); //javascript fixture_ memoHTML.text:= StringReplace(memoHtml.text,'frequency = 20;','frequency = 30;',[rfReplaceAll]); memoHTML.text:= StringReplace(memoHtml.text,'Sine Wave</h3>','Sine Wave F30</h3>',[rfReplaceAll]); navigatetoString(memoHTML.text); finally aMS.Free end; showmodal free; end;
위 내용은 자바스크립트 로더의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!