HTTPサーバーとWeb開発

55. ブラウザのプログレス・バーがいつまでも終了しない原因は?

CGI などの開発中においてブラウザのプログレス・インジケータが
いつまでも少しずつ伸びてきて、いつまでたっても完了しない場合がある。
画面自体は十分全体が表示されているのにである。
ブラウザのプログレス・バーのインジケータは全体の比率を表現しているわけではなく
単なる進行状況を示しているだけである。
プログレス・バーがいつまでたっても終了しないのは
ブラウザがまだ次のコンテンツの受信を待ち続けているからである。
この原因となるのは次のうちのいずれかが原因である。

  1. コンテンツに必要な他の部品(JavaScript や画像ファイルなど)がまだ受信できていない。
  2. HTTPサーバーが SOCKETをクローズしていない。
  3. JavaScript などで「"」、「>」 (閉じるカッコ) が脱落している。

多くのミスの原因は B の場合が多い。
自分で JavaScript などを記述した場合に 「"」、「>」 (閉じるカッコ) を忘れると
SOCKET通信は終了しているのに、ブラウザはいつまでも「"」、「>」 (閉じるカッコ)
の受信を待ち続けることになる。
このような症状が出たら「"」、「>」 (閉じるカッコ) が正しく漏れなく記述されているかを
確認しよう。