私の Web アプリは、時々 30 秒以上ハングする外部 JS ファイルを読み込み、ページがハングします。
head
から取り出したり、自分のサーバーからファイルをロードしたり、サービスを切り替えたりできることはわかっています。ただし、外部ファイルがしばらく応答しない場合、外部ファイルの読み込みを停止する方法があるかどうか疑問に思っていました。
私の Web アプリは、時々 30 秒以上ハングする外部 JS ファイルを読み込み、ページがハングします。
head
から取り出したり、自分のサーバーからファイルをロードしたり、サービスを切り替えたりできることはわかっています。ただし、外部ファイルがしばらく応答しない場合、外部ファイルの読み込みを停止する方法があるかどうか疑問に思っていました。
ファイル間に依存関係がある場合、JavaScript ファイルを非同期でロードするのは難しい場合があります。<script>
の一番下に -tag を配置することをお勧めし<body>
ます。このようにして、その下に依存関係を配置できます。依存関係では、低速の JS ファイルに依存する関数を実行する前に、低速の JS ファイルでのみ使用可能な変数をチェックします。また、JS を独自のサーバーに配置できると書いているので、外部ドメインにあると思います。この場合、通常の XMLHttpRequest/AJAX 呼び出しを使用して JS ファイルを非同期的にロードすることはできません。
ファイルを非同期でロードする必要があり、これによって発生する可能性のある問題に対処する準備ができている場合は、http://headjs.com/をご覧ください。
通常の方法で外部ファイルをリンクし、その読み込みにカスタム タイムアウトを指定することはできないと思います。
ファイルアドレスへのajaxリクエストを作成し、同時にタイムアウトを30秒に設定することができます。リクエストがまだ実行中の場合は、キャンセルできます。それ以外の場合は、html ページ内で、読み込まれたコンテンツを含むスクリプト タグを作成できます。