2015-09-08 2 views
1

Я строй гибридного приложения, с AngularJS, Cordova, Restangular ОНДОМ стороны клиента и Python с wsgiref.simple_server на стороне сервера. Я ничего особенного не делаю, это очень просто прошу, как это:Кордова гибридной app- HTTP запросы очень медленно

Restangular.one('/devices').get().then(function (response) { 
    viewModel.devices = Restangular.stripRestangular(response.devices); 
}); 

Я установил baseUrl для Restangular:

.config(function(RestangularProvider){ 
    RestangularProvider.setBaseUrl('http://192.168.54.102:8000/'); 
}) 

И когда я использую его на локальном компьютере с браузером Chrome, все быстро , работает нормально. Но когда я использую его на Android на Phonegap developer app на устройстве или установочном приложении на устройстве с Android, он работает безумно медленно. Похоже, что он отправляется на сервер с большой задержкой, так как это занимает некоторое время, так как я вижу журнал сервера отладки на стороне сервера. Это происходит также, когда приложение python с сервером не находится в режиме отладки, например, когда я запускаю его обычно после установки на локальный компьютер. Как я вижу, у некоторых людей есть эта проблема, кто-нибудь нашел решение или причину, которая вызывает очень медленные HTTP-запросы в гибридном приложении? Заранее благодарю за каждый ответ.

+0

Я не пользуюсь угловыми или нерегулярными, но я использую много вызовов ajax и websockets в моих приложениях cordova, и они очень быстры. – Joerg

+0

можете ли вы попытаться открыть его на хроме на том же устройстве, где медленное приложение? – jcesarmobile

ответ

2

Поскольку вы являетесь гибридным разработчиком, я уверен, что вы знакомы с Chrome DevTools. Для меня на Mac, нажмите cmd + option + i или перейдите в View -> Developer -> Developer Tools.

Действительно замечательная вещь в Chrome в новейшей истории теперь работает с Android WebViews. Гибридные разработчики не всегда имели это удобство, и им пришлось отлаживать в основном наручники с помощью таких инструментов, как Weinre.

Теперь мы можем использовать DevTools непосредственно в браузере Chrome, пока ваш Android устройство подключено АБР с новой вкладке вызывающей chrome://inspect

Here некоторые более подробную информацию о том, как это сделать, если вы застряли.

Откроем сетевую панель и посмотрим, как долго ваши запросы принимаются. Если они показывают значительно больше времени для загрузки здесь, проблема не имеет ничего общего с Angular, Cordova, Restangular или, возможно, даже с гибридной архитектурой. Я бы проверить вашу сеть и производительность в другом месте на устройстве.

Если это определенно не проблема, я бы воспользовался вкладкой Timeline в DevTools, чтобы узнать, что происходит между вашим браузером, получая информацию и отображаемое на ней устройство. Если между ними происходит более продолжительный процесс, вы увидите его здесь.

Смежные вопросы