WSH JScript による XMLHTTPRequest で更新日取得
lambda が渡せるので、とても楽しい…!
function check(url, out) { var bf2wk = new Date(new Date() - (14 * 24 * 60 * 60 * 1000)); var req = new ActiveXObject("Msxml2.XMLHTTP"); req.onreadystatechange = function() { switch(req.readyState) { case 0: break; // uninitialized case 1: break; // loading case 2: break; // loaded case 3: break; // interactive case 4: out("status: " + req.status + "\nlast-modified:" + req.getresponseheader("last-modified") + "\n---\nheader:\n" + req.getAllResponseHeaders() + "\n---\nbody:\n" + req.responseText); break; } } req.open("HEAD", url, true); req.setrequestheader("Content-Type", "text/xml;charset=UTF-8"); req.setrequestheader("If-Modified-Since", bf2wk); req.send(null); // req.open 三番目引数で async を有効にしているため、同期用に関数を返す return function() { return req.readystate == 4; }; } var done = check( "http://www.ijg.org/index.html", // 更新日チェックする URL function(str) { WScript.echo(str); }); // 表示用オブジェクトを関数として渡す while(!done()) WScript.sleep(10); // 結果を待ち合わせる WScript.quit();
多数のチェック用リクエストオブジェクトを作って配列に格納し、これらを待ち合わせる select もしくは join なる名前の関数をつくって…とか、わくわくするよね!ね?