【问题标题】:Cordova hybrid app- HTTP requests are very slowCordova 混合应用程序 - HTTP 请求非常慢
【发布时间】:2015-09-08 17:45:04
【问题描述】:

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

【问题讨论】:

  • 我不使用 angular,也不使用 restangular,但我在我的 Cordova 应用程序中使用了很多 ajax 调用和 websocket,它们非常快。
  • 你可以尝试在同一设备上的 chrome 上打开它吗?

标签: javascript python angularjs cordova restangular


【解决方案1】:

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

在最近的历史中,Chrome 的真正伟大之处在于它现在也可以与 Android WebViews 一起使用。混合开发人员并不总是拥有这种便利,他们不得不使用Weinre 等工具进行调试。

现在我们可以直接在 Chrome 浏览器中使用 DevTools,而您的 Android 设备通过 ADB 从一个名为 chrome://inspect 的新选项卡连接

Here 是一些更详细的信息,告诉您如果遇到困难如何执行此操作。

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

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

【讨论】:

    猜你喜欢
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    相关资源
    最近更新 更多