Лучший способ сохранить массив на стороне сервера - PullRequest
0 голосов
/ 30 августа 2011

В настоящее время я работаю над веб-страницей в HTML5 / Javascript, где пользователь может записать значение ползунков, измененных за определенный период времени.Например, когда пользователь нажимает «Запись», запускается таймер, и каждый раз, когда пользователь перемещает ползунок, его значение будет сохранено в массиве.Когда пользователь останавливает запись и воспроизведение, все слайдеры будут «воспроизводиться», когда он их записал.Я сохраняю значение в массиве, что-то вроде этого:

array [3]: {timeStamp, idSlider, valueSlider}

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

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

Я думаю о базе данных, но не уверен, будет ли это немного медленно для сохранения и загрузки с сервера, плюс моя емкость базы данных довольно мала (около 25 Мо на моем сервере OVH).Я думаю о среднем 800 записей для сохранения.

Может быть, в файле (XML?), Но тогда я понятия не имею, как сохранить это на моей стороне сервера ...

Любая другая идея приветствуется, так как я немного застрялна этом.

Спасибо и извините за любые английские ошибки, Приветствия, Мат

Ответы [ 5 ]

3 голосов
/ 30 августа 2011

Либо serialize(), либо json_encode(), сохраните его как запись базы данных в виде длинного текста.

2 голосов
/ 30 августа 2011

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

Чтобы узнать, какое место занимает больше или меньше памяти, вы можете рассчитать, сколько места займет 1000 записей, затем поместить их в базу данных и посмотреть, сколько места он использует и сколько тратит.

Если вы действительно имели дело с очень большим количеством элементов, то производительность сети, вероятно, станет вашим первым узким местом. Для загрузки я бы затем направил JavaScript в браузер, чтобы браузер не загружал все это в память. Кроме того, для отправки вы хотите создавать управляемые чанки по 1000 штук за раз и отправлять их в этих чанках. Но это предполагает, что вы имеете дело с большим количеством данных.

1 голос
/ 30 августа 2011

Вы можете попытаться сохранить весь объект json в виде простого текста в пользовательских файлах. Это сделало бы обслуживание настроек действительно легким, поскольку простой json должен быть оценен просто.

Хотя это немного неортодоксально. Когда вы говорите 800 записей, вы имеете в виду 1. id: 0, отметка времени: XXXXXXXXXXXXX, idSlider: X и т. Д. 2. id: 1, отметка времени: XXXXXXXXXXXXX, idSlider ....

Или 800 записей пользователя? Потому что вы также можете сохранить весь объект в базе данных и уберечь себя от выполнения большого количества «дорогих» запросов.

0 голосов
/ 30 августа 2011

Это идеальный вариант использования для MongoDB .

0 голосов
/ 30 августа 2011

Если вас больше беспокоит размер хранилища, чем производительность чтения / записи, вы можете кодировать массив в виде строки json , сжать его, используя библиотеки zlib и , сохранить его какфайл .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...