WSH with JScriptでAjax的にウェブファイルを読み込むスクリプト

久しぶりにプログラムを。
Windows Script HostのJScriptを使って、Ajax的にウェブページを読み込むことはできないかなぁと少し模索。
多少試行錯誤したけど、次で動くみたい。

//xmlhttp.js
"use strict";

var done = false;

var sendData = function() {
	var httpObj = new ActiveXObject("Msxml2.XMLHTTP.6.0");
	
	if (httpObj) {
		httpObj.open("get", "http://www.ほにゃらら.com", true); //http://www.ほにゃらら.comはウェブサイトのURL
		httpObj.onreadystatechange = function() {
			if (httpObj.readyState == 4 && httpObj.status == 200) {
				WScript.Echo(httpObj.responseText);
				done = true;
			}
		}
		httpObj.send(null);
	}
}
sendData();
//メインループ
while (done !== true) {
	WScript.Sleep(100);
}

「メインループ」のところで空回りさせて、httpObj.onreadystatechangeトリガーが発火するまで待ってやるところが、WSH的ミソだなぁと思います。
これがないと、onreadystatechangeトリガーが発火する前にスクリプトが終了してしまい、ウェブファイルの読み込みまで待ってくれないのであります。
onreadystatechangeトリガーの発火は、「メインループ」とは別スレッドで実行されるようです。
onreadystatechangeトリガーが発火し、処理が終了したら、別スレッドで動いている「メインループ」に、共有メモリ上の done フラグを経由して処理終了を教えてやる必要があります。