2016-08-29 5 views
0

私たちは時々、コードはいくつかをスローした場合jQuery block UI plugin避けコードjavascriptのエラーに凍結/一時停止

$(document).ajaxStart(function() { 
    $.blockUI({ 
    message: '<h4><i class="fa fa-circle-o-notch fa-spin fa-fw"></i> loading...</h4>' 
    }) 
}).ajaxStop($.unblockUI); 

を使用してUIをブロックしている

...私はいくつかの意味を成してみましょうエラー:

JSON error on console

凍結し、画面上のローディングメッセージは消えません。

loading message on the freezed screen

理由は次のとおりです。

  1. ajaxStart()開始、$.blockUI()が呼び出されたとき。

  2. ajaxStart()の実行が正常に終了する前に、エラーが発生します。

  3. ajaxStop()は到達しませんし、UIはajaxStart()ajaxStop()の間にいくつかのエラーが発生した場合($.unblockUI

だから、何私が探していることはいくつかのカスタムメッセージを表示する方法であるブロック解除になることはありません。 javascriptエラーでコードを一時停止/フリーズする代わりに

また、@Raghav's suggestionを試しても、画面がフリーズすることはありません。

$(document).ajaxStart(function() { 
    $.blockUI({ 
    message: '<h4><i class="fa fa-circle-o-notch fa-spin fa-fw"></i> loading...</h4>' 
    }) 
    throw Error; 
    debugger; 
}).ajaxStop($.unblockUI).ajaxError($.unblockUI); 

意味がありませんか?あなたはまた、エラーメッセージを取得することができますhttps://api.jquery.com/ajaxError/

$(document).ajaxError(function() { 
    $.unblockUI(); 
    // Display error message here 
    alert('Some error message'); 
}); 
$(document).ajaxStop(function() {$.unblockUI();}); 
$(document).ajaxStart(function() { 
    $.blockUI({ 
    message: '<h4><i class="fa fa-circle-o-notch fa-spin fa-fw"></i>loading...</h4>' 
    }) 
}); 

答えて

1

は)あなたがajaxErrorを(使用してエラーを処理しようとした

参照を持っています。詳細については、ドキュメントを参照してください。

$(document).ajaxError(function(event, jqxhr, settings, thrownError) { 

    $.unblockUI(); 
    console.log(event, jqxhr, settings, thrownError); 
}); 
+0

それは画面 – xameeramir

+0

は '$ .unblockUI'は、関数呼び出しではありません、それは' $ .unblockUI(すべきではない - アンフリーズしません) ' – Soren

+0

@Raghav謝罪、画面がブロックされていません。しかし、カスタムエラーメッセージも表示したいと思います。 – xameeramir

関連する問題