Added local timeout option for $.ajax + test
This commit is contained in:
parent
7dd456176d
commit
e94db76ada
|
@ -476,6 +476,7 @@ jQuery.extend({
|
||||||
* if(passed == 2) {
|
* if(passed == 2) {
|
||||||
* ok( true, 'Check local and global callbacks after timeout' );
|
* ok( true, 'Check local and global callbacks after timeout' );
|
||||||
* clearTimeout(timeout);
|
* clearTimeout(timeout);
|
||||||
|
* $('#main').unbind("ajaxError");
|
||||||
* start();
|
* start();
|
||||||
* }
|
* }
|
||||||
* };
|
* };
|
||||||
|
@ -492,6 +493,22 @@ jQuery.extend({
|
||||||
* success: fail
|
* success: fail
|
||||||
* });
|
* });
|
||||||
*
|
*
|
||||||
|
* @test stop(); $.ajaxTimeout(50);
|
||||||
|
* $.ajax({
|
||||||
|
* type: "GET",
|
||||||
|
* timeout: 5000,
|
||||||
|
* url: "data/name.php?wait=1",
|
||||||
|
* error: function() {
|
||||||
|
* ok( false, 'Check for local timeout failed' );
|
||||||
|
* start();
|
||||||
|
* },
|
||||||
|
* success: function() {
|
||||||
|
* ok( true, 'Check for local timeout' );
|
||||||
|
* start();
|
||||||
|
* }
|
||||||
|
* });
|
||||||
|
*
|
||||||
|
*
|
||||||
* @name $.ajaxTimeout
|
* @name $.ajaxTimeout
|
||||||
* @type jQuery
|
* @type jQuery
|
||||||
* @param Number time How long before an AJAX request times out.
|
* @param Number time How long before an AJAX request times out.
|
||||||
|
@ -520,6 +537,10 @@ jQuery.extend({
|
||||||
* (String) dataType - The type of data that you're expecting back from
|
* (String) dataType - The type of data that you're expecting back from
|
||||||
* the server (e.g. "xml", "html", "script", or "json").
|
* the server (e.g. "xml", "html", "script", or "json").
|
||||||
*
|
*
|
||||||
|
* (Number) timeout - Local timeout to override global timeout, eg. to give a
|
||||||
|
* single request a longer timeout while all others timeout after 1 seconds,
|
||||||
|
* see $.ajaxTimeout
|
||||||
|
*
|
||||||
* (Boolean) global - Wheather to trigger global AJAX event handlers for
|
* (Boolean) global - Wheather to trigger global AJAX event handlers for
|
||||||
* this request, default is true. Set to true to prevent that global handlers
|
* this request, default is true. Set to true to prevent that global handlers
|
||||||
* like ajaxStart or ajaxStop are triggered.
|
* like ajaxStart or ajaxStop are triggered.
|
||||||
|
@ -588,6 +609,7 @@ jQuery.extend({
|
||||||
var error = type.error;
|
var error = type.error;
|
||||||
var dataType = type.dataType;
|
var dataType = type.dataType;
|
||||||
var global = typeof type.global == "boolean" ? type.global : true;
|
var global = typeof type.global == "boolean" ? type.global : true;
|
||||||
|
var timeout = typeof type.timeout == "number" ? type.timeout : jQuery.timeout;
|
||||||
data = type.data;
|
data = type.data;
|
||||||
url = type.url;
|
url = type.url;
|
||||||
type = type.type;
|
type = type.type;
|
||||||
|
@ -674,7 +696,7 @@ jQuery.extend({
|
||||||
xml.onreadystatechange = onreadystatechange;
|
xml.onreadystatechange = onreadystatechange;
|
||||||
|
|
||||||
// Timeout checker
|
// Timeout checker
|
||||||
if(jQuery.timeout > 0)
|
if(timeout > 0)
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
// Check to see if the request is still happening
|
// Check to see if the request is still happening
|
||||||
if (xml) {
|
if (xml) {
|
||||||
|
@ -686,7 +708,7 @@ jQuery.extend({
|
||||||
// Clear from memory
|
// Clear from memory
|
||||||
xml = null;
|
xml = null;
|
||||||
}
|
}
|
||||||
}, jQuery.timeout);
|
}, timeout);
|
||||||
|
|
||||||
// Send the data
|
// Send the data
|
||||||
xml.send(data);
|
xml.send(data);
|
||||||
|
|
Loading…
Reference in a new issue