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
. Если сервера Дадаты недоступны, то обработчик никогда не будет вызван, и адрес будет считаться невалидным.Это заодно поможет в ситуации, когда подсказки работают, но пользователь ими не воспользовался, а ввел «отсебятину» вместо адреса («Рязанская область, на деревню дедушке»).