Crew algemeen |
|
Door te onthouden wat je precies wilt op het moment dat een bepaalde actie klaar is, al dan niet met argumenten.
In het geval van een XMLHttpRequest is dat grofweg:
var F = function () { // wordt direct uitgevoerd maar biedt privacy
if (!this.XMLHttpRequest) {
XMLHttpRequest = function () {
try {
return new ActiveXObject('Msxml2.XMLHTTP.6.0');
} catch (e) {}
try {
return new ActiveXObject('Msxml2.XMLHTTP.3.0');
} catch(e) {}
try {
return new ActiveXObject('Msxml2.XMLHTTP');
} catch(e) {}
try {
return new ActiveXObject('Microsoft.XMLHTTP');
} catch(e) {}
throw new Error('No XMLHttpRequest support');
}
}
return {
request: function(url, method, callback) {
var req = new XMLHttpRequest();
req.onreadystatechange = function () {
if (req.readyState === 4 && req.status === 200) {
callback(req.responseText);
}
};
if (callback === undefined) {
callback = method;
method = 'GET';
}
req.open(method, url);
req.send(null);
}
};
}();
F.request('/test.php', function (response) {
alert(response);
});
// of
F.request('/test.php', 'POST', function (response) {
alert(response);
});
var F = function () { // wordt direct uitgevoerd maar biedt privacy if (!this.XMLHttpRequest) { XMLHttpRequest = function () { try { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch (e) {} try { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch(e) {} try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) {} try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) {} throw new Error('No XMLHttpRequest support'); } } return { request: function(url, method, callback) { var req = new XMLHttpRequest(); req.onreadystatechange = function () { if (req.readyState === 4 && req.status === 200) { callback(req.responseText); } }; if (callback === undefined) { callback = method; method = 'GET'; } req.open(method, url); req.send(null); } }; }(); F.request('/test.php', function (response) { alert(response); }); // of F.request('/test.php', 'POST', function (response) { alert(response); });
En dit is makkelijk genoeg uit te breiden (: |