How the widget refreshes, depends on the code you use to render it.

If you use the static widget code (this is usually for the wordpress.com blogs), it will not update itself.

The new widget updates itself normally but also contains a static part of the code, used as a fallback

if the script of the widget does not run for some reason.

So, if you use the new widget and the script has somehow been modified, you can just grab a fresh copy

of the code from your dashboard and replace the code in your blog post. This fixes things most of the times.