0
Отвечен
Обработка проблем с сетью в jQuery плагине
Здравствуйте!
Может ли jQuery плагин как-то сообщить об ошибке, например, в случае недоступности серверов dadata?
Чтобы в этом случае можно было дать соответствующую подсказку пользователю и по другому обработать введенный адрес?
Я конечно верю в "Неограниченное число запросов в режиме 24*7. 2 сервера в Amazon Cloud с автоматической балансировкой.", но начальство есть начальство, и оно просит рассмотреть и такой вариант с недоступностью.
Может ли jQuery плагин как-то сообщить об ошибке, например, в случае недоступности серверов dadata?
Чтобы в этом случае можно было дать соответствующую подсказку пользователю и по другому обработать введенный адрес?
Я конечно верю в "Неограниченное число запросов в режиме 24*7. 2 сервера в Amazon Cloud с автоматической балансировкой.", но начальство есть начальство, и оно просит рассмотреть и такой вариант с недоступностью.
Ответ
На рассмотрении
Дамир, как бы вы хотели обработать введенный адрес, если сервера Дадаты недоступны?
Ответ
Отвечен
Можно исходно считать, что адрес невалидный (
Это заодно поможет в ситуации, когда подсказки работают, но пользователь ими не воспользовался, а ввел «отсебятину» вместо адреса («Рязанская область, на деревню дедушке»).
valid = false), и делать его валидным (valid = true) только в обработчике onSelect. Если сервера Дадаты недоступны, то обработчик никогда не будет вызван, и адрес будет считаться невалидным.Это заодно поможет в ситуации, когда подсказки работают, но пользователь ими не воспользовался, а ввел «отсебятину» вместо адреса («Рязанская область, на деревню дедушке»).
Да, так можно решить проблему с меткой валидности данных, но как быть с подсказкой?
Изначально мы в ней пишем что-то вроде "Начните вводить адрес и затем выберите правильный из списка", а в случае ошибки "Введите полный адрес: регион, город, улицу и т.д.".
Можно конечно по таймауту менять текст подсказки, но это не очень красивое решение, мне кажется.
Изначально мы в ней пишем что-то вроде "Начните вводить адрес и затем выберите правильный из списка", а в случае ошибки "Введите полный адрес: регион, город, улицу и т.д.".
Можно конечно по таймауту менять текст подсказки, но это не очень красивое решение, мне кажется.
Например, так:
if (!$.Suggestions) {
console.log("Подсказки недоступны");
} else {
$address.suggestions({
serviceUrl: "http://dadata.ru/api/v2",
token: "${API_KEY}",
type: "ADDRESS",
/* Вызывается, если запрос к подсказкам вернул ошибку */
onSearchError: function(query, jqXHR, textStatus, errorThrown) {
console.log("Подсказки вернули ошибку: " + textStatus);
}
});
}
Спасибо!
Я правильно понял, первый if это как раз вариант, когда сервера недоступны, а второй это когда доступны, но произошла какая-то ошибка?
Подскажите, какой-либо таймаут установлен при ожидании ответа сервера?
Я правильно понял, первый if это как раз вариант, когда сервера недоступны, а второй это когда доступны, но произошла какая-то ошибка?
Подскажите, какой-либо таймаут установлен при ожидании ответа сервера?
Сервис поддержки клиентов работает на платформе UserEcho
valid = false), и делать его валидным (valid = true) только в обработчикеonSelect. Если сервера Дадаты недоступны, то обработчик никогда не будет вызван, и адрес будет считаться невалидным.Это заодно поможет в ситуации, когда подсказки работают, но пользователь ими не воспользовался, а ввел «отсебятину» вместо адреса («Рязанская область, на деревню дедушке»).