Member 4015829 Ответов: 1

Android: длинный первый запрос (Wi-Fi без интернета)


Я использую AsyncHttpClient из loopj.com/android-async-http. Первый ответ в локальном Wi-Fi (без интернета) всегда будет занимать больше времени (около 15 секунд), чем в локальном Wi-Fi с Интернетом. Я использую два разных экземпляра этого класса, и эта проблема возникает дважды. Пример URL-адреса:
http://192.168.0.18/test/rest/v1
После первого выполненного запроса все работает нормально, а время отклика составляет <1 сек.
Я думаю, что system/lib пытается подключиться к DNS?
Я тестирую на Samsung S5, android 6.

Что я уже пробовал:

Я использую AsyncHttpClient из loopj.com/android-async-http-да. Первый ответ в локальном Wi-Fi (без интернета) всегда будет занимать больше времени (около 15 секунд), чем в локальном Wi-Fi с Интернетом. Я использую два разных экземпляра этого класса, и эта проблема возникает дважды. Пример URL-адреса:
http://192.168.0.18/test/rest/v1
После первого выполненного запроса все работает нормально, а время отклика составляет <1 сек.
Я думаю, что system/lib пытается подключиться к DNS?
Я тестирую на Samsung S5, android 6.

Afzaal Ahmad Zeeshan

<удалено>

1 Ответов

Рейтинг:
2

Afzaal Ahmad Zeeshan

Возможно, вам нужно посмотреть или проверить, как они кэшируют результаты? Проверьте документацию, так как мы понятия не имеем, почему это так.

Ответ также может заключаться в том, что ваш веб - сервер также запускается и веб — сервер также требует времени- особенно если это что-то на основе ASP.NET. Ваше устройство не будет таким уж большим виновником, если запрос займет <1 сек во второй раз. Виновником является ваш сайт.

Я бы рекомендовал держать ваше веб-приложение запущенным во время разработки мобильного приложения и делать их (мобильные и веб-приложения) отдельно, чтобы уменьшить время загрузки.

Наконец, эмуляторы Android требуют много времени для запуска, и они являются монстрами, когда дело доходит до использования процессора и оперативной памяти, они определенно замедлят все остальное. Ваш 192.168... IP-адрес показывает, что вы используете сервер локально. Именно поэтому я рекомендую вам разрабатывать их по отдельности, и пусть это займет некоторое время, прежде чем вы начнете их потреблять.

Совет: Попробуйте дать первый удар из браузера, на этой конечной точке API. Затем, как только вы получите там результат, попробуйте еще раз на Андроиде.