I like challenges like this because I can prove you can write elegant solutions using only vanilla JavaScript, HTML and CSS. This one is too restricting though, why not push all request via the websocket? That's how I do things nowadays, using sockJS to provide compatibility with old browsers that don't support Websockets.