我正在构建一个混合应用程序,在客户端使用 AngularJS
、Cordova
、Restangular
和 Python
wsgiref.simple_server
在服务器端。我没有做任何特别的事情,这只是像这样的简单请求:
Restangular.one('/devices').get().then(function (response) {
viewModel.devices = Restangular.stripRestangular(response.devices);
});
我为 Restangle
设置了 baseUrl
:
.config(function(RestangularProvider){
RestangularProvider.setBaseUrl('http://192.168.54.102:8000/');
})
当我在本地计算机上使用 Chrome 浏览器时,一切都很快,工作正常。但是,当我在 Android 设备上的 Phonegap Developer app
上使用它或在 Android 设备上安装应用程序时,它的运行速度非常慢。看起来它发送到服务器的延迟很大,因为我在服务器端看到调试服务器日志需要一些时间。当带有服务器的 python 应用程序不处于 Debug模式时,例如当我在本地计算机上安装后正常启动它时,也会发生这种情况。正如我看到有些人遇到这个问题,是否有人找到解决方案或原因,导致混合应用程序中的 HTTP 请求非常慢?预先感谢您的每一个回答。
最佳答案
由于您是一名混合开发人员,我相信您熟悉 Chrome DevTools 。对于 Mac 上的我,请点击 cmd + option + i,或转到“查看”->“开发人员”->“开发人员工具”。
Chrome 在最近的历史中真正伟大的事情是它现在也可以与 Android WebView 一起使用。混合开发人员并不总是拥有这种便利,并且必须使用类似 Weinre 之类的工具进行调试。 .
现在我们可以直接在 Chrome 浏览器中使用 DevTools,同时您的 Android 设备通过 ADB 从一个名为 chrome://inspect 的新选项卡连接。
Here有一些更详细的信息,告诉您在遇到困难时如何执行此操作。
从这里打开网络面板并查看您的请求花费了多长时间。如果它们在此处显示加载时间明显较长,则该问题与 Angular、Cordova、Restangular 甚至可能是混合架构无关。我会检查设备上其他地方的网络和性能。
如果这绝对不是问题,我会使用 Timeline DevTools 中的选项卡可查看浏览器接收信息和设备显示信息之间花费的时间。如果中间发生任何明显较长的过程,您将在此处看到。
关于javascript - Cordova 混合应用程序 - HTTP 请求非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32464111/