Я являюсь поклонником стиля реализации Гийома. Я использую прозрачный GIF-обработчик и очереди в памяти для пакетных наборов изменений, которые затем периодически сбрасываются с использованием отдельного потока, созданного в global.asax.
Обработчик реализует IHttpHandler, обрабатывает параметры запроса, например. идентификатор страницы, язык и т. д., обновляет очередь, затем отвечает.writes прозрачный GIF.
Перемещая постоянные изменения в отдельном потоке, в пользовательском запросе вы также иметь дело намного лучше с потенциальными проблемами сериализации запуск нескольких серверов и т.д.
Конечно вы можете просто заплатить кому-то еще, чтобы сделать работу тоже, например, с прозрачными gif.
Одной из проблем здесь является либо a) возможность сериализации, либо b) состояние гонки - зависит от уровня изоляции транзакции. – stephbu 2008-10-29 14:24:38
Правильно, одна из забот у нас есть, возможно, состояние гонки. Должно ли это выполняться асинхронно? – TimLeung 2008-10-29 14:25:35
@stephbu: для вашего б) это скорее некритические условия гонки, потому что увеличение +1 не меняется, если запрос выполняется в одно и то же время ... +1 +1 или +1 +1 равно всегда +2. – 2008-10-29 14:27:02