2015-09-05 72 views
0

我正在开发使用Ionic Framework的移动应用程序。我试图通过执行everything from scratch来运行Ionic Analytics。Ionic Analytics数据占用了大部分本地存储空间

根据this

要发送事件时对电池的消耗减少,离子分析不派人跟踪每一个事件的HTTP请求。相反,它会将事件排列在内存中,并每隔30秒发送一批事件。这30秒是调度间隔。

因此,我假设我的分析数据应每30秒同步一次。对于开发,我使用Ionic serve --lab来调试我的应用程序,并且我使用HTML5 Storage Manager All In One扩展跟踪了localStorage的使用情况。

由于我正在与我的应用程序一起工作并进行各种各样的尝试,Ionic正在捕获我的动作,并在日志中看到Ionic Analytics: enqueuing event to send later: Tap Object{...},并且由于我正在跟踪我的localStorage,可用空间越来越小。由于这种情况持续了很长时间,最终我会达到配额限制,我会收到错误,直到我手动删除我的localStorage。

我的问题是为什么30秒间隔不能释放Ionic Analytics排队事件使用的空间?当我在浏览器上进行测试时,这种行为是否正常?在实际的移动设备上它可以吗?

回答

0

我发现问题是什么,恐怕是我自己的错误。我发布我做错了,所以也许有人不会犯同样的错误。

通常为离子分析你有这样的事情在你的app.js文件:

.run(function($ionicPlatform, $ionicAnalytics) { 
    $ionicPlatform.ready(function() { 

    // Some code here that throw errors when you are on browser rather than real device  

    $ionicAnalytics.register(); 

    }); 
}) 

所以基本上我的$ionicAnalytics.register();,只有当我与真实的设备测试工作之前,有一些代码,当我在浏览器中时抛出错误,所以那些未被捕获的错误不允许$ionicAnalytics.register();运行,这对于发送排队事件是必不可少的。所以我的事件队列只会增加,因为它从未将数据发送到服务器。我在这里吸取了教训,要么将您为真实设备编写的内容注释掉,要么注意控制台中抛出的错误并解决它们。

1

看到这个错误报告,https://github.com/driftyco/ionic-service-analytics/issues/27,据说数据每30秒清空一次,你可能有其他东西占用空间。他们还建议降低门槛。

+0

谢谢雷蒙德,我会尝试提交一个问题,但问题是当我禁用我的离子分析,然后localStorage是好的。它只使用我分配的正常空间量。所以我的分析应该有一个问题。主要问题是它从不清空它所需的空间,它只会增长并增长,直到超过配额。即使我重新启动我的应用程序,分析空间也随之增加,并随着每次点击/状态更改而增加。 – Sobhan

+0

绝对有臭味。我会将它归档回购。另外 - 显然 - 确保你有最新的。他们一直在更新服务内容。 –

+0

再次感谢雷蒙德,我发现什么是错的,这确实是我自己的错误。虽然你的错误报告链接帮助了我。我发布并回答,以防其他人犯了同样的错误。 – Sobhan