Как синхронизировать данные между веб-страницами в случае, если пользователь открыл два одинаковых URL с одним идентификатором пользователя - PullRequest
2 голосов
/ 24 декабря 2009

Пользователь открыл два одинаковых URL в браузере, если пользователь перешел в режим редактирования записи данных на первой странице, но он также сделал ajax-вызов для удаления точно такой же записи БД на другой странице и в таблице данных удалил строку для этой операции.

что мне теперь делать, как я могу синхронизировать данные между двумя страницами? или мне нужно что-то делать?

Какое лучшее решение?

Ответы [ 2 ]

0 голосов
/ 24 декабря 2009

Существует много подходов к решению этой проблемы. Они обычно сводятся к вопросу о том, какое состояние вы поддерживаете на стороне клиента (то есть сколько информации содержит страница клиента, которую она может включать в любые запросы к серверу).

Одним из самых чистых решений является то, которое вы часто используете здесь, а также на других крупных сайтах, таких как Twitter. Страница клиента каждые несколько секунд спрашивает сервер, изменились ли соответствующие записи для текущей страницы (поэтому единственное, что вам нужно - это отметка времени последней загрузки страницы). Если это так, вы показываете пользователю какое-то сообщение / сообщение об ошибке, указывающее, что страница устарела, и что они должны перезагрузиться.

SO делает это всякий раз, когда ответ публикуется во время просмотра страницы. Twitter указывает, когда доступны новые твиты (для данного пользователя или для поиска).

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

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

0 голосов
/ 24 декабря 2009

Звучит так, будто вы ищете решение Comet.

проверьте ape-project.org, он довольно новый, но выглядит просто (ish)

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