Как WhatsApp показывает обсуждения так быстро? - PullRequest
0 голосов
/ 10 февраля 2020

Я работаю над приложением чата, и когда я нажимаю на обсуждение с более чем 20 сообщениями, всегда требуется некоторое время, чтобы показать обсуждение. В WhatsApp тайм-аут НЕТ, даже если обсуждению 5 лет, даже если в моем приложении 500 обсуждений. Кажется, что все обсуждения предварительно загружены ... но я не думаю, что это так, потому что это сжегло бы слишком много памяти, не так ли?

Итак, помимо выбора показать последние 20-30 сообщений, и помимо того, что все данные находятся в локальном хранилище (потому что я пытался, не помогает), какую технику использует WhatsApp для такой быстрой загрузки дискуссий?

Примечание: я создаю свой приложение в React Native.

1 Ответ

1 голос
/ 10 февраля 2020

Они делают это, используя адаптеры данных, курсоры базы данных, многократное использование представлений и сохраняя в памяти только необходимые данные.

Это позволяет приложению получать и отображать только ограниченное количество элементов и данных на экране. , Когда вы прокручиваете следующую страницу, элементы загружаются как просмотрщик. Когда вы прокручиваете вверх, он делает то же самое в противоположном направлении.

Стоит отметить, что эти приложения изначально реализованы и имеют доступ к API-интерфейсу всего системного уровня. Вы можете сделать то же самое с правильными привязками типов и вызывать лежащий в основе apis с несколько меньшей производительностью, чем чистый собственный apis, поскольку оболочка javascript будет вызывать api от имени. Есть несколько библиотек для извлечения, которые делают то же самое.

При этом чтение документов также поможет вам оптимизировать рендеринг Оптимизация конфигурации списков: React Native Также извлекайте из Android собственные документы ListView и методы для оптимизации их и адаптировать их к вашему варианту использования.

...