It is now extremely easy to dynamically refresh any component on a page, simply add the components id to the updateComponents parameter of AjaxDirectLink and it will have it's contents replaced. Many effects are also built in, allowing you to specify how the contents should be updated, ie highlighting or fading, etc.. It degrades gracefully: try it with JavaScript disabled.
Many features are built into the core, such as displaying an hour glass cursor during the ajax request. An additional attribute, statusElement, can be specified which will have it's contents updated and displayed on the completion of the request. Click on any of the links on the left to see the status area on the top of the page updated.