load widget content asynchronously