1

たとえば、サードパーティの JavaScript へのリンクを含む次のコードを書いた場合、読み込みに 1 秒かかりました。

<!DOCTYPE>
<html>
<head>

</head>
<body>

  // note no async attribute!
  <script src="//thirdparty.com/some/slow/loading/script.js">
  </script>

</body>
</html>

Web サーバーへの http 接続は、ドキュメントの最後まで開いたままになりますか?

更新: Connection: Keep-alive のコンテキストで話しているわけではありません。これにより、ページが読み込まれた後も接続が保持されることは明らかです。私は、ブラウザがインライン JavaScript を実行する時点でサーバーからドキュメントの内容を完全に読み取っていない可能性があるという事実に言及しています。これは読み取られましたが、まだDOMに追加されていませんか?

4

2 に答える 2

1

いいえ、ドキュメントが完全に解析されるまで接続は開いたままになりません。

ドキュメントは、解析中、および外部スクリプトが要求され、読み込まれ、解析され、実行されている間、引き続き読み込まれます。ブラウザは、現在解析するためにこれ以上データを必要としないという理由だけで、または何か他のものをロードしているという理由で、ドキュメントの読み取りを一時停止しません。それでもバックグラウンドでドキュメントをロードし続けます。

オープン接続はメモリよりも高価なリソースであるため、データが必要になったときに接続を開いたままにして読み取りを行うのではなく、ブラウザがすべてのデータをメモリにできるだけ速く読み取る方が適切です。

于 2013-03-16T20:06:09.993 に答える
0

ブラウザは最初にドキュメントの読み込みを開始します。タグを解析するとすぐ<script>に、サードパーティのサーバーに接続し、そこから JS の読み込みを開始します。メインページの読み込みが完了すると、サーバーへの接続が閉じられます。ただし、ブラウザーは、何か (JS など) がロードされている限り、ロード中のアイコンを表示し、window.onloadすべてがロードされた後にも呼び出します。

于 2013-03-16T19:45:33.087 に答える