#php #json
#php #json
Вопрос:
Я пишу страницу Google maps, содержащую около 160 записей, по 1 для каждого местоположения. Исходные данные карты хранятся в таблице sql. Поскольку текста довольно много, это может быть максимум 900 символов на запись.
Я фильтрую эти данные каждый месяц, поэтому на карте может быть 20-30 записей, отображаемых в виде маркеров. Я хочу, чтобы пользователь быстро переключался между месяцами, поэтому я хочу сохранить данные локальными (не запускать sql-запрос).
Является ли чтение всех этих данных в php-массивы из SQL (скажем, максимум 150 кб) хорошей идеей (т. Е. размещение в оперативной памяти) или это действительно не имеет значения?
Является ли Json лучше? (никогда не пробовал этого раньше).
Комментарии:
1. Что вы подразумеваете под «сохранением данных локально»?
2. Я не думаю, что это будет PHP, который доставит вам проблемы — объемы данных могут быть слишком большими для работы с клиентским браузером — вам пришлось бы выводить их все как переменные JavaScript… Я бы рассмотрел Ajax-решения для этого.
3. @Matti Я предполагаю, что он имеет в виду наличие всех данных, доступных внутри страницы, без необходимости делать какие-либо дополнительные запросы.
Ответ №1:
Загрузка данных в память будет выполняться только для каждого запроса, 10 запросов = 10-кратная загрузка данных. Если у вас много данных, а похоже, что так оно и есть, загружать все в память — ПЛОХАЯ идея. Вы будете тратить впустую память и нагружать базу данных (особенно, если многие пользователи будут использовать ее одновременно).
Вам лучше использовать AJAX и запрашивать только те данные, которые вам нужны, и кэшировать их (хранить в хэш-таблице) на стороне пользователя. Вы получите большой прирост производительности. Если вы новичок в AJAX и json, загляните в JavaScript framework — Mootools или jQuery. Оба они — фантастические фреймворки, я лично предпочитаю Mootools ;-).
Однако, если вы все еще хотите сделать это по-своему. Это нужно будет сделать следующим образом:
- Загрузить данные из базы данных в массив объектов ($data)
- Закодируйте данные json_encode($data)
- Сохраните закодированные данные в каком-нибудь скрытом элементе ввода на странице
- На странице с помощью JavaScript получаем сохраненные данные из скрытого ввода, декодируем их и что-то делаем с ними…
Таким образом, загрузка начнется в браузере пользователя.