Так как загрузка данных зависит от множества факторов, сервер может возвращать сообщения об ошибках вместо запрашиваемых данных. Webix позволяет отлавливать такие ошибки и обрабатывать их на клиенте.
По умолчанию, если происходит какая-либо ошибка приложение на Webix генерирует webix.message и выводит подробное описание ошибки в консоль. Это функциональность доступна только в полной неминифицированной версии.
Вы можете создать свой обработчик ошибок, который будет отлавливать сообщения об ошибках с сервера вне зависимости от компонента, с которым вы работаете:
Глобальные события и их обработчики вешаются на объект Webix:
webix.attachEvent("onLoadError", function(xhr, view){
// xhr - объект xmlHttpRequest
// view - компонент, в котором произошла ошибка
// ваш код
});
Обратите внимание, что эти события срабатывают только для тех Ajax запросов, которые генерирует Webix. Это может быть кастомное событие, созданное с помощью интерфейса Webix Ajax или автоматическое (сформированное компонентом при загрузке или сохранении данных).
У каждого компонента есть собственное событие onLoadError
, обработчик которого принимает xhr
параметр:
$$("list").attachEvent("onLoadError", function(xhr){
/* ваш код для обработки */
});
Результат запроса данных – промис. Если сервер возвращает данные, промис считается успешным и вы можете работать с этими данными в методе then()
. Если же произошла ошибка, вы можете обработать её с помощью метода fail()
:
$$("list").load("data.php").then(function(data){
/* ... */
}).fail(function(err){
/* ... */
});
То же самое можно сделать и при запросе через webix.ajax:
webix.ajax("data.php").then(function(data){
/* ... */
}).fail(function(err){
/* ... */
});
Более того, вы можете добавить функции, которые будут отрабатывать при успешном и неуспешном запросах:
$$("list").load("data.php",{
success:function(text, data, ajax){ /* ... */ },
error:function(text, data, ajax){ /* ... */ }
});
webix.ajax("data.php", {
success:function(text, data, xhr){ /* ... */ },
error:function(text, data, xhr){ /* ... */ }
});
Наверх