1

すべてが機能していますが、外部の JavaScript ファイル (ちなみに、長さはほんの数行です) を追加した後、popup.html の読み込みが遅れます。

この遅延は煩わしく、javascript ファイルを非同期にロードすることで、この遅延を取り除くことができると思います。

ファイルは次のように popup.html に記述されます。

<script src="https://domain.com/myexternalscript.js"></script>

このファイルを非同期にロードする方法がわかりません。では、どうすればこれを行うことができますか?

4

3 に答える 3

1

あなたは Chrome 用に開発しているので、ロード前にスクリプトをインライン化する際の問題は理解しています。この AJAX(jQuery) スニペットを書きました。お役に立てば幸いです。

   $.ajax({
            type: "GET", //or post?
            url: "http://FOOBAR.COM",   //change the url obviously..
            datatype: "script", //identify the expected income 
            async: "true", //async is "true" by default, but let's make sure it's #t
            success: function(result) {
                /**now we append the script to the document, nothing too special,
                   just pay attention we inject it INSIDE the item and not as the src**/
                var scr = document.createElement('script');
                scr.innerHTML = result;
                document.body.appendChild(scr)

            },
            error: function(result) { 
            //a simple error handling using the same method we used for the success
                console.log(result) 
                var scr = document.createElement('script');
                scr.innerHTML = "alert('ERROR!')";
                document.body.appendChild(scr)
            }

       }); 
于 2014-11-25T17:32:17.067 に答える
0

遅延は、ソースが単純な http 要求ではなく、安全な http (https) 要求であることが原因である可能性があります。特定のホスティング プランによっては、違いが生じる場合とそうでない場合があります。この概念とその反対を支持する議論と証拠が作成され、提示されています。

ファイルを非同期にロードしても問題は解決しないと思います。同じ http リクエストを作成することになるためです...これが AJAX の機能です。これにより、ページをリロードせずにサーバーから情報をリクエストできます。

ほんの数行の JS である場合は、それを .html ドキュメントに含めてみませんか?

また、あなたが直面している問題についても十分に説明していません。おそらくあなたは詳しく説明できますか?

于 2013-08-29T18:31:22.637 に答える
0

次の 2 つの解決策があります。

  1. script タグを html ページの最後に移動します。
  2. script タグの属性を使用しdeferますが、これは古いブラウザーではサポートされていません。
于 2013-08-29T18:25:35.710 に答える