постоянные данные в php вопросе - PullRequest
1 голос
/ 03 августа 2010

ОК. Я написал этот аккуратный javascript 'вещь', используя jquery и ajax. Все это основано на идее, что у div есть атрибут, который позволяет вам писать внутри div. (Contenteditable = истина). Я подумал, что было бы здорово сделать из этого что-то типа чата, а святая корова делает что-то классное (*), но у меня есть проблема.

Используя ajax, я публикую пост на странице php, которая берет опубликованные данные (x, y, text, id) и помещает их в JSON-подобный объект. Без записи в базу данных (я думаю, излишнее), как я могу сохранить эти данные? Видишь проблему? : Переменные в php-странице, по сути, испаряются после запуска страницы, поэтому мой javascript-вызов ajax для retrieveNewJSON () ничего не нашел.

* с использованием эффектов jquery и установки цветов Я по-разному размещал текст, который прокручивается и испаряется, например, в стиле матрицы. Кроме того, курсор находится в div, где пользователь нажимает.

Ответы [ 4 ]

0 голосов
/ 03 августа 2010

Если вы хотите избежать использования движка базы данных (который в любом случае потребует много ресурсов для приложения с множественным чтением и множеством записей, такого как чат), вы можете взглянуть на простое хранилище объектов, такое как memcache, couch,или монго.Файлы также являются допустимым вариантом при условии, что вы храните их вне корневого веб-каталога с соответствующими разрешениями.Суть в том, что вам придется использовать какой-то механизм хранения данных на серверной стороне, чтобы сделать данные доступными для нескольких пользовательских сеансов.

Если это просто техническая демонстрация или подтверждение концепции,Я бы не стал слишком беспокоиться о накладных расходах сразу.

0 голосов
/ 03 августа 2010

Вы можете использовать переменную $_SESSION для сохранения данных.

// Call at start of PHP script
session_start()
//....
// Store object
$_SESSION['obj'] = json_encode(obj);

в вашем сценарии извлечения:

// Call at start of PHP script
session_start()
// Retrieve object 
echo $_SESSION['obj'];

Обратите внимание, что при использовании сеансов вы должны убедиться, что вы вызываете session_start() в top из каждого php-скрипта, который использует сеанс.

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

Стоит отметить, что вы не можете обновить сеанс пользователя без какой-либо другой формы централизованного хранилища. Если у вас нет какого-либо типа длинного опроса / типа кометы, вам понадобится какое-то центральное хранилище. Что-то, на что я хотел бы взглянуть, было бы memcache .

0 голосов
/ 03 августа 2010

Вы можете использовать файлы cookie (на стороне клиента) или переменные сеанса (на стороне сервера), или вы можете записать в файл для длительного хранения.

0 голосов
/ 03 августа 2010

Вы должны где-то хранить данные. Если вы не хотите использовать полноценную базу данных, вы можете хранить их в виде простых файлов (например, txt) и использовать PHP * file functions для обработки файлов.

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

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