2016-08-29 2 views
0

Позвольте мне попытаться сделать какой-то смысл ...Избегайте код паузы/замораживания на Javascript ошибка в JQuery blockUI

Мы блокирующим интерфейс с использованием jQuery block UI plugin

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

Иногда, когда код бросает некоторые ошибка:

JSON error on console

сообщение нагрузки на замороженном экране не исчезает:

loading message on the freezed screen

Причина заключается в том:

  1. Когда ajaxStart() начинается, то $.blockUI() получает вызывается.

  2. И до того, как ajaxStart() сможет успешно завершить выполнение, он сталкивается с ошибкой.

  3. ajaxStop() никогда не достигается и UI никогда не разблокируется ($.unblockUI)

Итак, что я ищу способ, чтобы показать некоторые пользовательские сообщения, когда есть какая-то ошибка между ajaxStart() и ajaxStop() , Вместо того, чтобы приостановить/заморозить код при ошибке 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); 

Не имеет смысла?

ответ

1

Вы пробовали обработки ошибок с помощью ajaxError()

См: 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>' 
    }) 
}); 

Вы также можете получить сообщение об ошибке. Подробнее см. В документации.

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

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

Это не не-замораживает экран – xameeramir

+0

'$ .unblockUI' не является вызов функции, если она не будет' $ .unblockUI() ' – Soren

+0

@Raghav Извинения, экран не блокирует в настоящее время. Тем не менее, я также хочу показать какое-то пользовательское сообщение об ошибке. – xameeramir

Смежные вопросы