JavaScript ローダー

Barbara Streisand
Barbara Streisandオリジナル
2024-11-03 11:44:03705ブラウズ

ローダーは、モジュールまたはスクリプトのソース コードに適用される変換です。ファイルや HTML をインポートまたは「ロード」するときに、内部の JavaScript を使用して前処理することができます。したがって、ローダーは他のビルド ツールの「タスク」のようなもので、フロントエンドのビルド ステップを処理する強力な方法を提供します。
このアイデアは、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 のパラメーターを変更するように Web サイトに指示できます。

JavaScript Loader

ローダーはチェーン化できます。チェーン内の各ローダーは、処理されたリソースに変換を適用します。たとえば、URL を行付きメモのストリームとしてロードし、2 つのパラメーター (この例では頻度とタイトル) を変更して、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;  

以上がJavaScript ローダーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。