The `showHandler()` is called _after_ the delay, which means images won't be previewed until the delay time _plus_ the time it takes for the image to be loaded. For small local images, this isn't a problem. For large remote images, this could mean a long delay before the image is previewed. 

Here are a couple ways this could be mitigated:

1. Add the HTML right away (which will initiate the load), but wait at least 350 milliseconds before showing it.
2. Instead of hiding `$previewContainer` here, put a loading spinner that will get hidden when the image is loaded.