2015-09-05 2 views
0

Я разрабатываю мобильное приложение с использованием Ionic Framework. Я попытался запустить Ionic Analytics, выполнив everything from scratch.Данные Ionic Analytics занимают большую часть localStorage space

По this:

Чтобы сократить разряд батареи при отправке события, Ионные Analytics не отправляет запрос HTTP для каждого события отслеживаться. Вместо этого он приостанавливает события в памяти и отправляет пакет событий каждые 30 секунд. Это 30 секунд - это время отправки.

Так что я предполагаю, что каждые 30 секунд мои аналитические данные должны синхронизироваться. Для разработки я использую Ionic serve --lab для отладки моего приложения, и я отслеживаю использование своего локального хранилища с расширением HTML5 Storage Manager All In One.

Поскольку я работаю с моим приложением и нажимаю вокруг и перехожу в разные состояния, Ionic захватывает мои движения, а в журнале я вижу Ionic Analytics: enqueuing event to send later: Tap Object{...}, и когда я отслеживаю свой локальный хранилище, доступное пространство становится все меньше и меньше. Поскольку это продолжается в течение некоторого времени, в конечном итоге я удалю ограничение квоты на размер, и я получу ошибку до тех пор, пока я не удалю вручную локальное хранилище.

Вопрос в том, почему 30-секундный интервал не освобождает пространство, используемое событиями в очереди Ionic Analytics? Является ли это обычным явлением, когда я тестирую браузер, и будет ли это на реальных мобильных устройствах?

ответ

0

Я узнал, в чем проблема, и я боюсь, что это была моя собственная ошибка. Я публикую то, что я сделал неправильно, поэтому, возможно, кто-то не совершает ту же ошибку.

Обычно для Ионных Analytics у вас есть что-то подобное в вашем 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

Смежные вопросы