3

ページの読み込み時に $.ajax 呼び出しを介してページ データを取得するアプリケーションがあります(「クリック」などの他のバインディングはありません)。あるシナリオでは、応答が到着する前にユーザーがページをリロードする (または別のページに移動する) と、アプリケーションはステータス コード 0 のエラーを返します (エラー イベントajaxError()がトリガーされます)。

宿題をしていて、SO (および他の多くの場所) を読んでいるときに、次のことを行うことで、この種のエラーを単に無視する投稿に出くわしました。

$(document).ajaxError(function(e, jqxhr, settings, exception) {  
  if (jqxhr.readyState == 0 || jqxhr.status == 0) {  
    return; //Skip this error  
  }  
});  

この種のエラーだけが無視されると推測しても安全ですか? 「特別な注意」が必要なネガティブなシナリオはありますか?

また:

「return false;」を入力するという同様の問題への返信をいくつか見つけました。または「preventDefault」で問題が解決しました。しかし、私の場合、すべてがページの読み込み時に発生しているため、言及されたイベントのいずれにも「フック」することはできません...またはできますか?

編集:ここでの追加の質問は次のとおりです:これらの状況を処理する他の方法はありますか(ページのリロードによってajaxリクエストが中断されます)? 問題は、一般的な ajaxError イベントにエラー報告をバインドしていて、このようなメッセージを除外したい (または、そもそも発生しないようにしたい) ことです。

4

2 に答える 2

1

これは、ajax呼び出しから返されたすべてのエラーを無視します。これは一種の安全です。ユーザーはエラーが発生したことに気付くことはありません。具体的な例の外で言うのは難しいですが、各ハンドラーがエラーを適切に処理しない限り、失敗したAJAX呼び出しを実行するとアプリケーションが破損する可能性があります。

于 2012-07-02T16:05:20.107 に答える