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

Cordova hybrid app- HTTP requests are very slow

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

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

我设置 baseUrlRestangular:

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

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

由于您是一名混合开发人员,我相信您对 Chrome DevTools 很熟悉。对我来说 Mac,点击 cmd + option + i,或者转到查看 -> 开发人员 -> 开发人员工具。

最近 Chrome 的真正伟大之处在于它现在也可以与 Android WebViews 一起使用。混合开发人员并不总是有这种便利,并且不得不使用 Weinre.

之类的工具进行基本上手铐式的调试

现在我们可以直接在 Chrome 浏览器中使用 DevTools,同时您的 Android 设备通过 ADB 从调用 chrome://inspect

的新选项卡连接

Here 是有关遇到困难时如何执行此操作的更详细信息。

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

如果这绝对不是问题所在,我会使用 DevTools 中的 Timeline 选项卡来查看从您的浏览器接收信息到您的设备显示信息之间花费的时间。如果中间发生了任何明显更长的过程,您将在此处看到它。