Implemented global ajax settings - no documentation yet
authorJörn Zaefferer <joern.zaefferer@gmail.com>
Fri, 22 Dec 2006 13:56:36 +0000 (13:56 +0000)
committerJörn Zaefferer <joern.zaefferer@gmail.com>
Fri, 22 Dec 2006 13:56:36 +0000 (13:56 +0000)
build/test/data/testsuite.css
src/ajax/ajax.js
src/ajax/ajaxTest.js

index b42f2b7..76319d8 100644 (file)
@@ -1,6 +1,6 @@
 body, div, h1 { font-family: 'trebuchet ms', verdana, arial; margin: 0; padding: 0 }
-body { margin: 0; padding: 0; font-size: small; }
-h1 { padding: 15px; margin: 0; font-size: large; background-color: #06b; color: white; }
+body {font-size: 10pt; }
+h1 { padding: 15px; font-size: large; background-color: #06b; color: white; }
 h2 { padding: 10px; background-color: #eee; color: black; margin: 0; font-size: small; font-weight: normal }
 
 .pass { color: green; } 
index 2e222d4..b6a18f4 100644 (file)
@@ -407,7 +407,7 @@ jQuery.extend({
        },
 
        // timeout (ms)
-       timeout: 0,
+       //timeout: 0,
 
        /**
         * Set the timeout of all AJAX requests to a specific amount of time.
@@ -428,11 +428,26 @@ jQuery.extend({
         * @cat AJAX
         */
        ajaxTimeout: function(timeout) {
-               jQuery.timeout = timeout;
+               //jQuery.timeout = timeout;
+               jQuery.ajaxSettings.timeout = timeout;
+       },
+       
+       ajaxSetup: function(settings) {
+               jQuery.extend(jQuery.ajaxSettings, settings);
        },
 
        // Last-Modified header cache for next request
        lastModified: {},
+       
+       // TODO document me
+       ajaxSettings: {
+               global: true,
+               type: "GET",
+               timeout: 0,
+               contentType: "application/x-www-form-urlencoded",
+               processData: true,
+               async: true
+       },
 
        /**
         * Load a remote page using an HTTP request.
@@ -555,22 +570,7 @@ jQuery.extend({
         */
        ajax: function( s ) {
                // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout
-               s = jQuery.extend({
-                       global: true,
-                       ifModified: false,
-                       type: "GET",
-                       timeout: jQuery.timeout,
-                       complete: null,
-                       success: null,
-                       error: null,
-                       dataType: null,
-                       url: null,
-                       data: null,
-                       contentType: "application/x-www-form-urlencoded",
-                       processData: true,
-                       async: true,
-                       beforeSend: null
-               }, s);
+               s = jQuery.extend({}, jQuery.ajaxSettings, s);
 
                // if data available
                if ( s.data ) {
@@ -677,14 +677,12 @@ jQuery.extend({
                if(s.timeout > 0)
                        setTimeout(function(){
                                // Check to see if the request is still happening
-                               if (xml) {
+                               if(xml) {
                                        // Cancel the request
                                        xml.abort();
 
-                                       if ( !requestDone ) onreadystatechange( "timeout" );
-
-                                       // Clear from memory
-                                       xml = null;
+                                       if( !requestDone )
+                                               onreadystatechange( "timeout" );
                                }
                        }, s.timeout);
                        
index 1cd072f..1ae6bbf 100644 (file)
@@ -127,6 +127,7 @@ test("test global handlers - failure", function() {
          counter.error = counter.success = counter.complete = counter.send = 0;
          $.ajaxTimeout(500);
          $.ajax({url: "data/name.php?wait=5", global: false, beforeSend: send, success: success, error: error, complete: function() {
+                var x = counter;
             ok( counter.error == 1, 'Check failed request without globals' );
             ok( counter.success == 0, 'Check failed request without globals' );
             ok( counter.complete == 0, 'Check failed request without globals' );
@@ -331,4 +332,17 @@ test("$.ajax - beforeSend", function() {
                        start();
                }
        });
-});
\ No newline at end of file
+});
+
+test("ajaxSetup()", function() {
+       expect(1);
+       stop();
+       $.ajaxSetup({
+               url: "data/name.php?name=foo",
+               success: function(msg){
+               ok( msg == 'bar', 'Check for GET' );
+                       start();
+               }
+       });
+       $.ajax();
+});