Looking for the best way to implement a tracking object for updates

I am developing an app in Cappuccino that uses Rails as the backend.
The problem that I am concerned about is that I need some way to know
whether the data on the client requires updating without having to
constantly requery to get new items. It’s not a ton of data, and I
double-check that a record exists before doing any operations on it,
but I show a table view. In the case where an item is added by
another user, I need to update the table to reflect that. Here are
the ways I considered:

  1. Have a timer in the javascript that submits the ids being viewed to
    the server and have the server return a flag for whether any of them
    changed or if there are new ones or deleted ones, which would cause a
    re-get on the client.
  2. Maintain a table with a single object that is used to track the
    number of adds, deletes, and updates that have been performed for the
    two types of models that I am concerned about. If that number
    changes, then the UI would do a further check. The concern here is
    how to maintain such a table without locking, since I can’t really use
    the counter cache.
  3. Have a timer in the javascript that re-gets the data one a periodic
    basis, but that seems like way too much overhead and traffic over the
    wire.

I’m really not sure what things like GMail or Mockflow do for this,
but those are good examples of the type of client/server interaction I
am dealing with. Clearly, what would be most desirable is something
like comet where the server pushes the data down to the UI, but I am
not sure that is feasible.

Any thoughts or suggestions? Thanks in advance