LocalStorage, несколько запросов Ajax или огромный запрос Ajax?

Я столкнулся с действительно серьезной проблемой (по крайней мере, для меня). Я дам вам некоторую предысторию.

Я разрабатываю мобильное веб-приложение, которое будет отображать информацию об автобусных и велосипедных остановках в моем городе. Он покажет маркеры GMap для автобусных и велосипедных остановок, и, если вы нажмете на них, у вас будет информация о времени прибытия автобуса или о том, сколько велосипедов доступно. У меня это довольно хорошо покрыто.

Проблемная часть - загрузка станций.

Мой первый подход заключался в загрузке всего количества станций при загрузке страницы. Это около 200 КБ JSON плюс время, которое он получает на итерацию по массиву и размещение его на карте. Они загружаются скрыто, поэтому, когда пользователи нажимают на название строки, они появляются с помощью функции «findMarker». Если на карте присутствовали другие станции, они скрываются, чтобы на карте не было слишком много маркеров.

Это хорошо работает с новыми мобильными телефонами, такими как iPhone 4 или новый HTC, но не работает с мобильными телефонами двухлетней давности.

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

  • во-первых, вы можете (а может и не выполнять) несколько запросов , которые могут закончиться одинаково (?)
  • . Во-вторых, чтобы избежать большого количества маркеров, они должны быть скрытым или удаленным, поэтому вы можете удалить информацию, которая через некоторое время понадобится снова, например, о велосипедных станциях, которые загружаются как группа, а не построчно.

Наконец, я подумал об использовании LocalStorage для их хранения, поскольку они не так сильно изменятся, но будут представлять собой огромное количество данных, а затем, заноза в заднице, получить их в том виде, в каком они есть. ключ-значение, а также (и я не совсем уверен в этом) я мог найти устройства без поддержки этой функции, которые должны были бы откатиться к одному из других вариантов.

Итак, я подумал, что может быть кто-то столкнулся с какой-то подобной проблемой и решил ее каким-то образом или дал мне несколько советов :).

Любая помощь будет очень признательна.

7
задан Antonio Laguna 11 November 2011 в 11:06
поделиться