2010-12-06 7 views
6

場合は、ドメインの接続制限ごとだ使い果たした場合、それは一般的に旋回アイコンの代わりに、favicon.icoを示して特定する方法。しかしIEはそれはIEがページの読み込みで忙しいです

  1. 接続制限を次のように区別するためにどのように達しているとIEはまだ
  2. IEはそのすべての要求から応答を受け取ったが、ページ

ショーをIE意志をレンダリング忙しいですすべてのコンテンツを受信して​​いません任意のJavaScriptの操作が終了していない場合は忙しいアイコン(主にonload JavaScriptのコール?)

おかげに関して、 のAvinash

答えて

0

たぶん唯一の方法は、Fiddlerのようなものを見てだろう - と、あなたはIEがやっている正確に何を追跡することができ、および(楽しい時間)は、カウントを行います。

私は悲しいことに、任意の他の方法を考えることはできません。

+0

ありがとうdanp。しかし、JavaScriptコールが無限ループになっている場合、接続プールが使い果たされた場合、ビジー状態になっている接続の数を取得するために、いくつかのJavaScriptハンドラのような情報をプログラムで取得する方法はありますか? – avinash

+0

私は気付いていません - 私はmsdnを掘り起こし、この情報を入手する方法があるかどうかを確認するケースを推測します。ちょっとネットのアプリでそれにフックできるいくつかの方法があるかもしれませんが、私はちょうど推測しています。それは、あなたが知る必要のないようなもの、またはクライアント側のコード最適化で解決できるもののように思えます。 – dmp

1

「1.接続制限に達し、IEはまだすべてのコンテンツを受信して​​いません」という点に関しては、WinInetではこの制限が課されています。私はこの問題に答えることさえしませんでした。ページの読み込み時間をさらに短縮する方法が問題に(ページ自体の中から)近づいています。 DanielのFiddlerについての提案は良いことです。同じホスト名に2つの要求が同時に処理されたときにログに記録するFiddler用の拡張機能やカスタムスクリプトを書くことができます。さもなければ、それは目を見張るような問題であり、同じホスト名の2つの要求が同時に処理されているかどうかを調べることですが、一般的に要求は非常に速く終了し、これをフィドラーUIを見ているだけで問題になることがあります。

「2.IEは、そのすべての要求から応答を受け取ったが、ページをレンダリングビジー状態です」ユーザーがそれと対話するためのページが準備ができているとき、それはあなたが知りたいのように聞こえます。事実は、IEはこれらのタスクを同期して実行せず、ダウンロード中にページをレンダリングし、IEはまだダウンロード中である間にページとやりとりすることができるということです。だから私がやったことは、インターネットエクスプローラのタブのスピナーアイコンがファビコンに切り替わるときをどのようにして知ることができるかを示す例がここに含まれています。 document.readyState == "complete"のときにスピナーが消えますが、ページはdocument.readyState == "interactive"上でユーザーと対話する準備ができています。これはdocument.body.readyState == " "complete"はdocument.body.readyState == "complete"がdocument.readyState == "interactive"の原因であるかどうかはわかりませんが、確かに一致するように見えます。しかし、すべてがダウンロードされたかどうかを判断したい場合は、DOMのすべての要素にreadyStateプロパティがあります。すべての要素がreadyState == "complete"を持っているかどうかを確認するDOMを列挙して、レンダリング。

サンプルhtmlはコンピュータに保存して実行することができますが、ローカルディスクから実行すると、IEはyello情報バーを表示し、右クリックしてスクリプトを実行する必要があります。スピナーはまだ回転しますが、とき「document.readystateで:完全な」という警告がされていることをあなたが気づくでしょう:HTMLがあなたはjavascriptのアラートが表示されるはず正しく実行されたときは、「インタラクティブdocument.readystateでの」と言う警告に気づくでしょうスピナーアイコンが消えてしまった。お役に立てれば。

<html> 
<head> 
    <script language="javascript"> 
     document.onreadystatechange = function(e) 
     { 
      alert("Document State: " + 
          document.readyState + 
          "\nBody State: " + 
          document.body.readyState); 
     }; 
    </script> 
</head> 
<body> 
Test Content 
<div id="placeToAddTo"></div> 
<script language="javascript" type="text/javascript"> 
    for(var i = 0; i < 1000; i++) 
    { 
     var obj = document.createElement("div"); 
     obj.innerText = "Div Number: " + i + " Document State: " 
        + document.readyState + " Body State: " 
        + document.body.readyState; 
     document.getElementById("placeToAddTo").appendChild(obj); 
    } 
    alert("completed creating object"); 
</script> 
</body> 
</html> 
関連する問題