Imagine you have a simple function that formats all of your ajax calls.
function runQuery(url, params) {
return $.ajax({
mimeType: "text/plain; charset=utf-8",
url: url,
data: params,
type: "GET",
dataType: "html"
});
}
var request = runQuery("test.php", "id=7");
request.done(function(data) {
// success
});
request.fail(function(data) {
// failure
});
function runQuery(url, params) {
var deferredPromise = $.Deferred();
(function runDeferredQuery(url, params, retryNum) {
console.log("----- Attempt "+retryNum+" -----");
$.ajax({
mimeType: "text/plain; charset=utf-8",
url: url,
data: params,
type: "GET",
dataType: "html",
timeout: 5000, // timeout = 5 seconds
success: function(data) { deferredPromise.resolve(data); },
error: function() {
// retry if < 3
if (retryNum < 3) runDeferredQuery(url, params, (retryNum+1));
else deferredPromise.reject(); // return fail
}
});
}(url, params, 1)); // call runDeferredQuery with retryNum=1
return deferredPromise.promise();
}
$val = rand(1, 10);
sleep($val);
print "Timeout = ".$val." seconds";
?>
>> Posted in Websites at 19:09, and viewed 37,062 times
Next article: Houses (30 May 2018)
Add your comments