6

Head JSを使用して、自分のページの他のすべてのスクリプトを動的にロードしたいと思います。CDNJSでホストされているバージョンを使用して、キャッシュの改善やレイテンシーの短縮などを活用することを計画しています。

CDNJSがどこにでも行くと思う理由はありませんが、jQueryのようなGoogle CDNでホストされているファイルの場合でも、フォールバックを含めるのが好きです。ただし、jQueryを使用している場合、ファイルは<body>タグの最後に含まれます。Head JSの性質上<head>、ページのに含める必要があります。

<body>私はこのような2行を使用します:

<script src="http://cdnjs.cloudflare.com/ajax/libs/headjs/0.96/head.min.js"></script>
<script> window.head || document.write('<script src="js/libs/head-0.96.min.js"><\/script>') </script>

頭の中でこれと同じ一連の線をフォールバックとして使用できますか?document.write()ページ全体を上書きしませんか?<head>ブラウザがDOMを解析する順序が原因で、スクリプトが存在する場合、スクリプトの読み込みが異なるのではないでしょうか。

私はまだこれにかなり慣れていないので、どんなガイダンスも非常に役に立ちます!ありがとう!

4

1 に答える 1

0

おそらく既にご存じのとおり、window.jQueryhead.js に含まれている関数をテストするのではなく、いくつかの関数をテストします。

document.write()さらに、ここで 2 回使用したくない場合があることは正しいです。

の代わりにdocument.write()、これを試してください:

function appendScript(url) {
  var head = document.getElementsByTagName('head')[0];
  var theScript = document.createElement('script');
  theScript.type = 'text/javascript';
  theScript.src = url;
  theScript.onreadystatechange = callback;
  theScript.onload = callback;
  head.appendChild(theScript);
}

URL には、ローカル フォールバックを使用します。

于 2012-07-20T17:24:35.750 に答える