いろんなウィジェットで使うし、
毎回同じ処理書いたりするのも無駄なので、
ここらで一旦まとめよーってことで。
あと、Google Syntax Highlighter for WordPressのテストも兼ねて。
/***************************************
* my_httpRequest
* Class: object
* Description: a kind of wrapper for httpRequest
* NOTE:
*/
function my_httpRequest(url, timeout_ms, func_success, func_fail)
{
this.requestUrl = url;
var request = new XMLHttpRequest();
var timer = null;
this.setRequestUrl = function(url_str) {
this.requestUrl = url_str;
};
// request send
this.send = function() {
request.onreadystatechange = function() {
if (request.readyState == 4) {
clearTimeout(timer);
timer = null;
if (request.status == 200) {
if (func_success != null) {
func_success(request);
}
} else {
if (func_fail != null) {
func_fail(request);
}
}
}
};
request.open("GET", this.requestUrl, true);
request.send();
if (timeout_ms > 0) {
timer = setTimeout("timeout()", timeout_ms);
}
};
// request abort
this.abort = function() {
clearTimeout(timer);
timer = null;
request.abort();
};
// request timeout
timeout = function() {
if (timer != null) {
clearTimeout(timer);
timer = null;
request.abort();
if (func_fail != null) {
func_fail(request);
}
}
};
なんかインデントがダメダメだなー。
Leave a comment