загружает данные из внешнего источника данных
url | string| function| WebixProxy | путь к данным |
type | string | (необязательный) тип данных для загрузки: "json" (default), "xml", "jsarray", "csv", "excel" (с "binary" прокси) |
callback | function | (необязательный) колбэк-функция |
clear | boolean | если true, метод очистит текущие данные перед загрузкой новых |
promise | объект "promise" |
$$("mylist").load("data.xml", "xml");
url параметр автоматически передается в метод load(). Он может быть задан как:
$$("table").load("some.php");
$$("table").load(function(){
return webix.ajax().post("some.php", params);
});
$$("list").load({
$proxy:true,
load:function(view, params){
return webix.ajax().get("some.php", params);
}
});
По умолчанию компоненты ожидают данные в JSON-формате. Если вы загружаете данные в этом формате, нет необходимости задавать datatype:
$$("component_id").load("data.json");
Если данные приходят с сервера в другом формате, задайте формат во втором параметре метода load():
$$("component_id").load("data.xml","xml");
Метод возвращает promise, который содержит конечный результат AJAX-запроса. Вы можете использовать promise, чтобы отловить результат запроса (успешный или нет).
Promise загрузки успешно завершается (resolve) при успешном выполнении запроса, как только данные приходят на клиент. Этот момент можно захватить в then(). Обработчик в then() получает объект data с функциями для обработки ответа с сервера:
$$("table").load("some.php").then(function(data){
/* ...ваш обработчик */
data = data.json(); // получить данные в JSON
});
Ошибку можно отловить с помощью методов fail() / catch() (альтернативное название метода fail() в Webix):
$$("table").load("some.php").fail(function(xhr){
/* ...ваш обработчик */
console.log(xhr.responseText);
});
Чтобы выполнить код в случае любого результата запроса (успешного или неудачного), используйте finally():
$$("table").load("some.php").finally(function(){
/* ...ваш обработчик */
});
Узнайте больше по ссылкам:
В качестве альтернативы для promise API, вы можете использовать колбэк для выполнения действий после завершения загрузки. Колбэк может быть функцией или объектом.
Функция получает 3 параметра:
$$("component_id").load("data.json", function(text, data, http_request){
const d = data.json();
// ваш код
});
У объекта может быть 2 свойства для обработки успешного или неудачного результата запроса:
$$("component_id").load("data.xml", "xml", {
success:function(text, data, http_request){
webix.message("success");
},
error: function(text, data, http_request){
webix.alert("error");
}
});
Если вы задаете тип данных, колбэк (объект или функцию) нужно передать методу load() третьим параметром:
$$("component_id").load("data.xml","xml",function(text, data, http_request){
// ваш код
});
Метод load отправляет GET запрос. Если вы хотите отправить POST или синхронный запрос, вы можете использовать одну из двух опций:
1. создайте proxy:
$$("component_id").load({
$proxy:true,
load(view,params){
return webix.ajax().post("some.json",params);
}
});
2. отправьте запрос с помощью webix.ajax() и используйте parse метод чтобы загрузить данные в компонент:
// синхронная загрузка данных
var xhr = webix.ajax().sync().get("some.json");
$$("component_id").parse(xhr.responseText);
// использование POST для загрузки данных
webix.ajax().post("mydata.php", "some=value").then(function(data){
$$("component_id").parse(data.text());
});