asynchronous JavaScript templating