2009-04-01 142 views
15

HttpFoxを見ている間に私のサイトのサーバーコール(追跡目的で使用される)の一部がFirefoxで中止されています。これは、同じウィンドウ内の別のページを読み込むリンクをクリックしているときに起こります。それはポップアップでうまく動作します。表示されるエラーの種類はNS_BINDING_ABORTEDです。トラッキングコールがサーバーに当たるかどうかを知る必要があります。 Internet Explorerで完全に動作します。ツールに問題はありますか?その場合は、Firefoxでも使えるものを提案することができます。NS_BINDING_ABORTED HttpFoxでFirefoxに表示

答えて

5

問題は、使用しているツール(HttpFox)が理解できないエラーコード(NS_BINDING_ABORTED)を報告していることです。

http://markmail.org/message/m6z77uoixf3qu7u6が役に立ちます。

また、HttpFoxが何であるかを実際に知らなくても、別のページの読み込み中にページを開くと、最初のページの読み込みがキャンセルされるのは完全に正常です。要求がサーバーに送信される前に負荷が中断されたことを意味するわけではありません。

+1

記録のために:HttpFoxは、Firebug内で、HTTPリクエスト(GET、POST ...)と結果を表示し、ネットワークスニファのような味方で表示します。 このエラーも発生します。開かれたページは実際にiframeに移動するため、同時に2つのページが読み込まれる可能性があります。 – PhiLho

+2

HttpFoxはFirebugから完全に分離されていますが、Firebugには同様のツールが「ネット」タブに含まれています。 – MatrixFrog

1

このページには他にどのようなJavaScriptがありますか?一部のjavascriptが起動してリクエストが中止される可能性があります。

私のアプリケーションでは同じことに気付きました。私はjavascript(window.location = '/some/page.html')でページをリダイレクトしていましたが、コードブロックをさらに下にして、私は 'window.reload()'を呼び出していました。 window.reloadが呼び出されたため、以前のリダイレクトが中止されました。

私はどのトラッキングを使用しているのかわかりませんが、リクエストがサーバーに送信されている可能性がありますが、後で別のリクエストが発行されたためリクエストが中止されます。

1

私は同様の問題を経験しましたが、原因を特定しました。

私はテーブル行の最初のセルにリンクを持ち、そのリンクを他のTDの行にまたがって複製するJavaScriptをいくつか持っています。最初のセルの「本当の」リンクをクリックすると、私はこの不要な副作用を受けます。行の他のセルをクリックすると、すべて正常です。私はそれが既に1つを持っているときにスクリプトがその最初のセルに2番目のリンクを追加しているためだと思う。

したがって、同じページに対する2つの瞬時要求があり、最初のものは2番目のものによって中止されます。

この手法はかなり一般的なので、注意が必要です。

1

NS_BINDING_ABORTEDエラー - ベスト・アプローチ - ページロードに基づいて最小 '0'から最大 '100'ミリ秒の時間遅延を持つJavaScript「setInterval」メソッドを使用すると、デフォルトのページ送信後にトラックリンク要求を実行できます要求が処理されます。

世界最高のソリューション:

var el = document.getElementById("t"); 
el.addEventListener("click", avoidNSError, false); //Firefox 

function avoidNSError(){ 
    ElementInterval = setInterval(function() { 
/* Tracking or other request code goes here */ 
    clearInterval(ElementInterval); 
},0); 

}; 
0

いくつかのリソース(フォント)が欠落していたとき、私はページを呼び出すようにしようとしていたことを、同様の問題を得ました。 Firefoxでのみ問題が発生している場合、FirefoxはIEとは少し異なるリソースを取得しようとしていますか?

4

サーバーがhttp Expiresヘッダーを送信していないため、ブラウザーはキャッシュ内の内容が最新であるかどうかを確認しています。

これはサーバーに、キャッシュされた日付が何であるかを示す要求を送信することであり、サーバーは現在の状況をクライアントに知らせるステータスを送信しています。言い換えると、サーバーはコンテンツ全体を再度送信するのではなく、既存のキャッシュコンテンツが最新のものであると言う短いヘッダーを送信します。

おそらくを修正する必要があるのは、あなたが提供しているものにExpiresヘッダーを追加することです。それから、NS_BINDING_ABORTEDメッセージが(cashe)に変わります。つまり、ブラウザは単に期限切れになっていないことを知っていて、キャッシュからコンテンツを取り出すだけです。

FireFox強制リフレッシュを実行するときに、現金に何が入っているかを再確認したいと仮定しているため、Expiresを一時的に無視するようにしてください。

関連する問題