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