应用程序加载时连接速度非常慢

时间:2015-11-20 09:15:34

标签: angularjs ionic firebase

我面临着一个非常关键的问题 - 我正在使用Ionic平台开发我的应用程序。 我有一个我需要尽快提供的对象,所以我尽快尝试加载。 但是,我注意到当我第一次尝试加载它时 - 它加载的速度非常慢,相比于2秒后加载它。

以下是一个示例:http://codepen.io/anon/pen/eNQyPB

angular.module('ionicApp', ['ionic','firebase'])

.controller('MyCtrl', function($scope, $firebaseObject) {
  var fb = new Firebase("https://docs-examples.firebaseio.com/web/saving-data/");
  $scope.foo = foo;

  foo();
  function foo() {

    console.time('Done loading')
    ret = $firebaseObject(fb).$loaded(function() {
      console.timeEnd('Done loading');
    });

  }
});

打开控制台并刷新页面 - 查看立即调用函数foo()时加载所需的时间。 现在,删除对foo()的调用,刷新它并单击将启动对foo()的调用的HTML正文,查看对象加载速度与其他方式的比较。 我很乐意理解为什么它会这样,并找到解决方法。

谢谢 盖

2 个答案:

答案 0 :(得分:1)

CodePen不是您的应用的页面加载测试的最佳位置。页面必须加载,然后加载沙箱iframe

此外,如果这是一个离子应用程序,整个资产集将下载到设备上。它将立即供用户使用。因此,您需要关注的唯一加载时间是数据加载。

在你的情况下,你正在做console.time(),我每次都会回来300-400毫秒,这非常快。

答案 1 :(得分:0)

最有可能的是构建一个新的Firebase引用并在加载后返回它。您正在使用

创建新参考
new Firebase("https://docs-examples.firebaseio.com/web/saving-data/");

该网址需要4.24才能加载我的连接。然后在你的foo()函数中等待加载然后再执行另一种方法

ret = $firebaseObject(fb).$loaded(function() {
      console.timeEnd('Done loading');
});

总的来说,你的codepen在我的连接上只需要超过5秒,因此总时间包括等待你的引用url加载以及其余的codepen页面。