I had given a chalk talk at TechED'06 on how to do this however. This can be
done badly in 1.1 and elegantly in 2.0.
In 2.0 -
What you do basically is, invalidate a cached item based on SqlDependency,
and have an AJAX request poll for the cached item at a regular interval.
In 1.1 -
You replace that SqlDependency with a filebased dependency that you modify
by touching a file using an extended stored procedure.
Either approach is scalable and stateless at server end, so it should work
out just fine.