GET メソッドで一連の URL を ping するスクリプトがあります。それぞれに 1 回だけ ping を実行するだけで、応答は期待できません。私のスクリプトは Chrome と Safari で動作しますが、Firefox はそれ以降の要求を完了しません。
Firefox が一連の呼び出し (正確には 5 回) を 1 回ずつ行い、失敗しても気にしないようにする方法はありますか? 最初のリクエストが失敗すると、Firefox は一連のリクエストを完了しないようです。
私は javascript と jQuery で作業しており、少し jQuery.ajax() がスローされています。検索しても役に立たず、初心者のスキルセットの限界に達しました。任意の洞察をいただければ幸いです。
(全範囲に興味がある場合は、jquery ベースのスタンドアロン ポート ノッカー にコードがあります)
ありがとうございました。
アップデート:
さらに調査した結果、問題は Firefox が呼び出しを完全に非同期で処理していないことにあると思います。Chrome と Safari で動作するように、img 呼び出し、iframe url 呼び出し、および ajax 呼び出しで ping を実行するコードのバージョンがありますが、Firefox では必要に応じて動作しません。
ノック シーケンスのサーバー モニタリングでは、リクエストがポート 1、2、3、4、5 に順番に送信されることを確認する必要があります (Chrome または Safari を使用している場合と同様)。ただし、Firefox では、どの方法を試しても、最初のポート 1 に 2 回、次にポート 2 に ping を試行し、その後の試行ではポート 1 にのみ ping を実行します。ステータスの更新は期待どおりに表示されますが、サーバーは必要な順序で呼び出しを受信していません。Firefox は、失敗した呼び出しを順番に 1 回ずつ実行するのではなく、再試行しているようです。
これは、単純な jquery.ajax 呼び出しメソッドを使用したスクリプトのサンプルです。Safari と Chrome では機能しますが、Firefox では期待どおりの結果が得られません。すべてのコードが実行され、(jquery.append 関数で生成された) ステータスの更新を確認できますが、リクエストはサーバーに順番に 1 回ずつ送信されません。
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('button').click(function(){
$('#knocks').append('<p>Knocking...</p>');
setTimeout(function(){
$.ajax({url: 'https://example.sample.com:1111'});
$('#knocks').append("<p>Knock 1 of 5 complete...</p>");
}, 500);
setTimeout(function(){
$.ajax({url: 'https://example.sample.com:2222'});
$('#knocks').append("<p>Knock 2 of 5 complete...</p>");
}, 3500);
setTimeout(function(){
$.ajax({url: 'https://example.sample.com:3333'});
$('#knocks').append("<p>Knock 3 of 5 complete...</p>");
}, 6500);
setTimeout(function(){
$.ajax({url: 'https://example.sample.com:4444'});
$('#knocks').append("<p>Knock 4 of 5 complete...</p>");
}, 9500)
setTimeout(function(){
$.ajax({url: 'https://example.sample.com:5555'});
$('#knocks').append("<p>Knock 5 of 5 complete...</p>");
}, 12000);
setTimeout(function(){
$('#knocks').append("<p>Knocking is complete... <br>Proceed to site: <a href='http://example-url.sample-url.com'>http://example-url.sample-url.com</a></p>");
}, 13000);
});
});
</script>