Auto adjusting AJAX timeout when polling for the progress JSON closes #45
rodzic
3426f76518
commit
d21417dd0c
|
@ -1,4 +1,17 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* CUSF Landing Prediction Version 2
|
||||||
|
* http://www.cuspaceflight.co.uk
|
||||||
|
*
|
||||||
|
* Jon Sowman 2010
|
||||||
|
* jon@hexoc.com
|
||||||
|
* http://www.hexoc.com
|
||||||
|
*
|
||||||
|
* http://github.com/jonsowman/cusf-standalone-predictor
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
require_once("includes/functions.inc.php");
|
require_once("includes/functions.inc.php");
|
||||||
// get the time for pre-populating the form
|
// get the time for pre-populating the form
|
||||||
$time = time() + 3600;
|
$time = time() + 3600;
|
||||||
|
@ -32,6 +45,9 @@ var land_img = "images/target-8-sm.png";
|
||||||
var burst_img = "images/pop-marker.png";
|
var burst_img = "images/pop-marker.png";
|
||||||
var clickListener;
|
var clickListener;
|
||||||
var clickMarker;
|
var clickMarker;
|
||||||
|
var ajaxTimeout = 500;
|
||||||
|
var maxAjaxTimeout = 2000;
|
||||||
|
var deltaAjaxTimeout = 100;
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
|
|
|
@ -172,10 +172,26 @@ function getJSONProgress(pred_uuid) {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url:"preds/"+pred_uuid+"/progress.json",
|
url:"preds/"+pred_uuid+"/progress.json",
|
||||||
dataType:'json',
|
dataType:'json',
|
||||||
timeout: 1000,
|
timeout: ajaxTimeout,
|
||||||
// complete: function(data, httpstatus) {
|
error: function(xhr, status, error) {
|
||||||
// appendDebug(httpstatus);
|
if ( status == "timeout" ) {
|
||||||
// },
|
appendDebug("Polling for progress JSON timed out");
|
||||||
|
// check that we haven't reached maximum allowed timeout
|
||||||
|
if ( ajaxTimeout < maxAjaxTimeout ) {
|
||||||
|
// if not, add the delta to the timeout value
|
||||||
|
newTimeout = ajaxTimeout + deltaAjaxTimeout;
|
||||||
|
appendDebug("Increasing AJAX timeout from " + ajaxTimeout
|
||||||
|
+ "ms to " + newTimeout + "ms");
|
||||||
|
ajaxTimeout = newTimeout;
|
||||||
|
} else {
|
||||||
|
// otherwise, throw an error and kill the poller
|
||||||
|
clearInterval(ajaxEventHandle);
|
||||||
|
appendDebug("Reached maximum ajaxTimeout value of " + maxAjaxTimeout);
|
||||||
|
throwError("Tried increasing the AJAX polling timeout to "+maxAjaxTimeout
|
||||||
|
+"ms but the request still timed out.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
success: processProgress
|
success: processProgress
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue