Записать в файл и не допускать перезаписи в течение x времени

0

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

Сценарий извлекает данные из БД, сохраняет его в файл и отображает граф с использованием метода $.getJson в jquery, который переходит в другой файл ajax и обрабатывает данные, которые были сохранены. Пользователь может потратить х количество времени на просмотр графика, и каждый раз, когда пользователь меняет уровень масштабирования, запрос ajax отправляется обратно на мою страницу ajax, которая снова использует файл сохраненных данных для отправки данных графика обратно.

Проблема заключается в том, что если другой пользователь использует приложение, в то время как исходный пользователь все еще использует график и постоянно обновляется файлом ajax, файл сохраненных данных перезаписывается, а исходный пользователь будет иметь неверные данные графика, отправленные им обратно,

Я считал использовать $ _SESSION, однако данные могут быть очень большими время от времени. Любые другие идеи?

  • 2
    Вы можете называть меня вмешательством, но ... зачем здесь нужен промежуточный файл? Я имею в виду, если вы просто хотите показать одно состояние диаграммы за определенный промежуток времени, почему бы не сделать запросы Ajax в этот определенный интервал для сценария на стороне сервера, который пересчитывает данные на лету?
  • 0
    Я должен согласиться с Jackflash здесь, я не вижу причин для вашего промежуточного файла. Нет никакой причины, по которой исходному пользователю нужно было бы повторно запрашивать данные при увеличении, если данные не меняются, и даже если данные менялись, насколько дорого просто получать данные снова из базы данных?
Показать ещё 5 комментариев
Теги:
file
highcharts
concurrentmodification

2 ответа

3

Если у вас несколько пользователей, не используйте одно и то же имя файла для всех пользователей. например

$cache_file = 'cache-' . session_id() . '.txt';

так что файл привязывается к конкретному пользователю.

  • 0
    Быстрее меня!
  • 0
    Возможно ли автоматическое удаление файлов после того, как пользователь завершит работу с ним, поскольку таким образом со временем будет создаваться огромное количество файлов.
Показать ещё 1 комментарий
1

Вы можете использовать разные файлы для разных пользователей.

Если вы добавите значение session_id() в ваше имя файла, у вас будут разные файлы для каждого рабочего сеанса.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню