Updated to asynchronous XHR