Я фанат стиля реализации @ Guillaume. Я использую прозрачный обработчик GIF и очереди в памяти для пакетирования наборов изменений, которые затем периодически сбрасываются с использованием отдельного потока, созданного в global.asax.
Обработчик реализует IHttpHandler, обрабатывает параметры запроса, например, идентификатор страницы, язык и т. д. обновляет очередь, а затем response. записывает прозрачный GIF.
Перемещая постоянные изменения в отдельный поток, а не по запросу пользователя, вы также намного лучше справляетесь с потенциальными проблемами сериализации из-за запуска нескольких серверов и т. Д.
Конечно, вы могли бы просто заплатить кому-то, чтобы он тоже сделал работу, например. с прозрачными гифками.