0

私たちのプロジェクトには、最大20個のタブがあり、それぞれが異なるスクリプトで動作する多くのページが含まれています。すべてのスクリプトファイルはで参照さ<head>れ、最初のページの読み込み時に読み込まれます。ページを開くときに読み込まれるスクリプトが多すぎるため、パフォーマンスの問題が発生します(タブあたり約2,000行のJavaScript)。多くの場合、ユーザーは2〜3個のタブで作業する必要があり、その結果、コードの60%以上が使用されなくなります。したがって、ページを簡単にするために、スクリプトの遅延読み込みソリューションが必要です。すべてのタブのHTMLはオンデマンドで読み込ま<script>れるため、適切に機能するソリューションを提供する参照をすべてのタブに配置できます。<head>しかし、含まれていない参照を含めることは悪いスタイルであると私は確信しています。
だから私は疑問に思います、他の解決策はありますか?私たちのような大きなプロジェクトでは、このような問題はどのように解決されますか?どんなアドバイスも役に立ちます。
前もって感謝します!

4

1 に答える 1

3

jQueryには、このソリューションに最適な機能があります。

$.getScript("my_lovely_script.js", function(){


   alert("Script loaded and executed.");
   // here you can use anything you defined in the loaded script

});

これはデフォルトではキャッシュされません。jQuery Webサイトで解決策を探しましたが、キャッシュされたスクリプトにこの解決策が含まれていると記載されていました。

jQuery.cachedScript = function(url, options) {

  // allow user to set any option except for dataType, cache, and url
  options = $.extend(options || {}, {
    dataType: "script",   //Note this
    cache: true,          //Enable caching
    url: url
  });

  // Use $.ajax() since it is more flexible than $.getScript
  // Return the jqXHR object so we can chain callbacks
  return jQuery.ajax(options);
};

// Usage
$.cachedScript("URL HERE").done(function(script, textStatus) {
  console.log( textStatus );
});
于 2012-05-03T08:14:07.167 に答える