Лучшие способы сгруппировать несколько действий вместе (как одно событие) - PullRequest
3 голосов
/ 22 сентября 2011

На работе мы используем веб-приложение (attask.com) для записи проектов, задач и т. Д. В нем есть много полезных функций, таких как комментарии и обновление статуса (остановимся, прежде чем вы думаете, что я его продаю!)Anywho, На сайте вы можете обновить статус проекта, и это сохраняется через ajax.Затем, вскоре после этого, я смог прокомментировать проект.В разделе обновления этого проекта эти два действия будут отображаться вместе, как если бы они были выполнены как одно ...

Если бы вы выполняли такую ​​же функциональность, как бы вы это сделали?

Один из способов, о котором я подумал, - это иметь скрытое поле и сохранять в нем GUID при загрузке страницы.Открой страницу загрузки.Тогда любые вызовы ajax будут использовать этот GUID при отправке данных обратно, и поэтому все может быть сгруппировано таким образом.

Но я хотел бы услышать идею других людей или как они пошли на это, если им пришлось сделать что-то похожее

1 Ответ

1 голос
/ 22 сентября 2011

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

Когда действие выполнено, guid будет отправлено с запросом AJAX.После получения действия сервер может проверить, произошло ли предыдущее действие, выполненное пользователем с тем же идентификатором, в течение x секунд.Если это так, то действия будут считаться парой, и модель «подачи» будет соответствующим образом обновлена.

Мой единственный опыт создания чего-то подобного был планировщик событий, который не требовал, чтобы пользователь регистрировался для выборадни в календаре.Выбор дней осуществлялся AJAX, поэтому необходимо было определить, какой календарь в базе данных обновлять, на основе руководства, которое было передано на страницу при загрузке.

Стоит также отметить, что вы не делаетедействительно нужен 'guid', подойдет любая уникальная строка.

...