Когда пользователь нажимает кнопку «Сохранить», я хочу, чтобы все пользователи, которые в данный момент находятся на странице, были уведомлены или, что еще лучше (или хуже, если подумать), заставить страницу обновляться.
Итак, я попробовал это в своем сценарии:
function save_match() {
...
alert("Saved slot " + slot + "! :)");
window.location.reload();
}
но обновление, конечно же, происходит только для пользователя, который фактически нажал кнопку, другие пользователи не знают о сохранении, которое только что сделал другой пользователь.
Принудительная перезагрузка страницы кажется маловероятной, так как насчет того, чтобы сделать что-то с помощью JavaScript, чтобы уведомить других онлайн-пользователей об инциденте сохранения?
Возможный связанный с этим вопрос.
Итак, что я хочу, так это:
function save_match() {
...
alert("Saved slot " + slot + "! :)");
// do something here so that all online users are updated!!
}
save_match()
. @PaulG - person gsamaras   schedule 14.01.2015save_match()
создаст запрос с переменнойrefresh = true
или что-то в этом роде. На сервере он установит глобальную переменнуюeveryone_refresh = true
, еслиrefresh = true
будет отправлено с клиента. Затем, помимо этого, у нас есть еще один запрос AJAX каждую 1 секунду, который будет запрашивать у сервера переменнуюeveryone_refresh
. Если он возвращает true,window.location.reload()
. Довольно просто. Каждый клиент будет знать, когда обновить. Конечно, есть еще кое-что, что нужно учитывать, например, избегать перекрытий и т. д. - person kappaallday   schedule 14.01.2015