Cordova混合应用程序 - HTTP请求非常慢

时间:2015-09-08 17:45:04

标签: javascript python angularjs cordova restangular

我正在构建一个混合应用,在客户端使用AngularJSCordovaRestangular,在服务器端使用Python wsgiref.simple_server。我没有做任何特别的事情,这是非常简单的请求:

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浏览器的本地计算机上使用它时,一切都很快,正常工作。但是当我在设备上的Phonegap developer app上的Android上使用它或在Android设备上安装应用时,它的工作速度很慢。它看起来像是发送到服务器有很大的延迟,因为我看到服务器端的调试服务器日志需要一些时间。当服务器的python应用程序未处于调试模式时,例如当我在本地计算机上安装后正常启动它时,也会发生这种情况。正如我看到有些人有这个问题,有没有人找到解决方案或原因,这会导致混合应用程序中的HTTP请求非常慢?提前感谢您的每一个答案。

1 个答案:

答案 0 :(得分:3)

由于您是混合开发人员,我相信您熟悉Chrome DevTools。对我来说,在Mac上,点击cmd +选项+ i,或者转到View - >开发者 - >开发者工具。

最近历史上Chrome的真正优势在于它现在也适用于Android WebViews。混合开发人员并不总是有这种便利,并且必须使用Weinre等工具进行基本上手铐调试。

现在,我们可以直接在Chrome浏览器中使用DevTools,同时您的Android设备由ADB从一个名为chrome://inspect的新标签页连接

Here是一些有关如何解决问题的更详细信息。

从此处打开网络面板,查看您的请求需要多长时间。如果他们在这里显示的加载时间明显更长,那么Angular,Cordova,Restangular甚至甚至混合架构都没有问题。我会在设备的其他地方检查您的网络和性能。

如果这绝对不是问题,我会使用DevTools中的Timeline标签来查看接收信息的浏览器与显示信息的设备之间的关系。如果两者之间发生任何明显更长的过程,您将在此处看到它。