1039のコメントで@jpdevries経由
document.write()フォールバック(ルールだと思います)と言えば、これはどうですか?
ネット接続が遅い場合、Chromeはdocument.write()を介して挿入されたスクリプトをロードしなくなりました
https://developers.google.com/web/updates/2016/08/removing-document-writeこれに対応する方法はもう議論されていますか?
まだですが、これを私たちの注意を引いてくれてありがとう。
リンクされたドキュメントからの興味深い部分は次のとおりです
このデータを念頭に置いて、Chromeチームは最近、Chromeでのdocument.write()の処理方法を変更することで、この既知の不良パターンを検出したときに、すべてのユーザーに代わって介入する意向を発表しました(Chromeステータスを参照)。 具体的には、Chromeは実行しません
@roblarsen号を開いていただきありがとうございます。 含まれているすべてのスクリプトにdefer
を追加すると、これが解決するのではないかと思っていました。
'async'または 'defer'属性を持つスクリプトは引き続き実行されます。
何かのようなもの
<script defer src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script defer>window.jQuery || document.write('<script defer src="js/vendor/jquery-1.12.4.min.js"><\/script>')</script>
<script defer src="js/plugins.js"></script>
<script defer src="js/main.js"></script>
ザ・
<script defer>window.jQuery || document.write('<script defer src="js/vendor/jquery-1.12.4.min.js"><\/script>')</script>
ある種のdefer
始まりのようなものです。 動作しているようですが、それが正しいかどうかはわかりません。
うーん...または、jqueryスクリプトが非同期で、プラグインとメインスクリプトが延期される可能性があります。 もちろん、jQueryの後にそれらがロードされることを確認する必要があります。
@jpdevries Google Analyticsが使用するような最新のDOMインターフェース(parentNode.insertBefore)を使用するようにincludeスクリプトを書き直すことも、
決定を推進するのに役立つ可能性のあるこれに関する関連する議論:
@FagnerMartinsBrackリンクをありがとう。 redditに関するあなた自身のスレッドは、物事を明確にするのに役立ちました。 クロスオリジン状態がある限り、心配する必要はありません。
私の意見では、延期戦略が最善の選択肢です。 jQueryのようにできるだけ早く準備ができていなければならないスクリプトについては、非同期はまったく好きではありません。 私はWICG /介入スレッドでより長期的な実装を提案しました...
@ jpdevries'defer 'コードには2つのことがあります。
<script>
の延期は、WHATWGによって非推奨になりました。 与えられた不十分な不十分な理由は、誰もそれを使用しなかったということでした...本当のラメの話ですが、それは悲しいことに起こりました....したがって、 defer
開始は機能しません。 :(defer
を使用するパブリックボイラープレートの条件は、主にIE10の使用が終了するのを待っています。@ hexalys😭ローカルフォールバックを備えたh5bpスタイルのCDNのようなものに遅延開始を使用したり、ポリフィルのようなものを含める前に機能検出を行ったりしています。 それは残念です!
閉鎖! 安全です!
@roblarsenああ、それは素晴らしい! Chromeは彼らの決定を元に戻しましたか? 私は本当に❤️このパターンなので、なぜ私たちが安全なのか興味があります
@jpdevriesリクエストがクロスオリジンである場合にのみトリガーされるため、問題ありません。 結局のところ、これはローカルフォールバックです。