]> source.dussan.org Git - jquery.git/commitdiff
remove jQuery.quickReady, save bytes, style nits in tests
authorMike Sherov <mike.sherov@gmail.com>
Fri, 4 May 2012 13:57:32 +0000 (09:57 -0400)
committerMike Sherov <mike.sherov@gmail.com>
Fri, 4 May 2012 14:17:30 +0000 (10:17 -0400)
src/core.js
test/data/event/asyncQuickReadyFalse.html [deleted file]
test/data/event/asyncQuickReadyTrue.html [deleted file]
test/data/event/asyncReady.html [new file with mode: 0644]
test/data/event/syncReady.html
test/unit/event.js

index 22f1863368456b70faa6ab29d69e2c9a81c3bc5c..b5b8efcd7ab3c24e5ad4aa95cc9786ce244a1b0b 100644 (file)
@@ -60,7 +60,18 @@ var jQuery = function( selector, context ) {
        readyList,
 
        // The ready event handler
-       DOMContentLoaded,
+       // Cleanup function for the document ready method
+       DOMContentLoaded = function() {
+               if ( document.addEventListener ) {
+                       document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
+                       jQuery.ready();
+               } else if ( document.readyState !== "loading" ) {
+                       // if document.addEventListener isn't present, we assume detachEvent is!
+                       // Make sure body exists by checking readystate, at least, in case IE gets a little overzealous (ticket #5443).
+                       document.detachEvent( "onreadystatechange", DOMContentLoaded );
+                       jQuery.ready();
+               }
+       },
 
        // Save a reference to some core methods
        toString = Object.prototype.toString,
@@ -375,9 +386,6 @@ jQuery.extend({
        // the ready event fires. See #6781
        readyWait: 1,
 
-       // should we fire ready on readyState "interactive" ?
-       quickReady: true,
-
        // Hold (or release) the ready event
        holdReady: function( hold ) {
                if ( hold ) {
@@ -389,11 +397,6 @@ jQuery.extend({
 
        // Handle when the DOM is ready
        ready: function( wait ) {
-               // user wasn't necessarily given the chance to set jQuery.quickReady before bindReady
-               // so we check here for quickReady instead
-               if ( !jQuery.quickReady && document.readyState === "interactive" ) {
-                       return;
-               }
 
                // Either a released hold or an DOMready/load event and not yet ready
                if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) {
@@ -431,7 +434,7 @@ jQuery.extend({
                // browser event has already occurred.
                if ( document.readyState !== "loading" ) {
                        // Handle it asynchronously to allow scripts the opportunity to delay ready
-                       setTimeout( jQuery.ready, 1 );
+                       return setTimeout( jQuery.ready, 1 );
                }
 
                // Mozilla, Opera and webkit nightlies currently support this event
@@ -921,24 +924,6 @@ if ( rnotwhite.test( "\xA0" ) ) {
 // All jQuery objects should point back to these
 rootjQuery = jQuery(document);
 
-// Cleanup functions for the document ready method
-if ( document.addEventListener ) {
-       DOMContentLoaded = function() {
-               jQuery.quickReady = true;
-               document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
-               jQuery.ready();
-       };
-
-} else if ( document.attachEvent ) {
-       DOMContentLoaded = function() {
-               // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
-               if ( document.readyState === "complete" || ( jQuery.quickReady && document.readyState === "interactive" ) ) {
-                       document.detachEvent( "onreadystatechange", DOMContentLoaded );
-                       jQuery.ready();
-               }
-       };
-}
-
 // The DOM ready check for Internet Explorer
 function doScrollCheck() {
        if ( jQuery.isReady ) {
diff --git a/test/data/event/asyncQuickReadyFalse.html b/test/data/event/asyncQuickReadyFalse.html
deleted file mode 100644 (file)
index 9352697..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="content-type" content="text/html; charset=utf-8">
-<title>Test case for jQuery ticket #10067</title>
-<script type="text/javascript">
-
-// ready should fire callback after the iframe fires the callback
-setTimeout(function () {
-       el = document.createElement('script');
-       el.type = 'text/javascript';
-       el.onload = function () {
-               jQuery.quickReady = false;
-               jQuery(document).ready(function () {
-                       // unfortunately, Opera 11.6 and lower has a bug where
-                       // document.readyState is "complete" before all subresources
-                       // are loaded, so we need this check here for tests to pass
-                       if ( document.readyState !== "complete" ) {
-                               window.parent.iframeCallback(false);
-                       }
-               });
-    }
-       document.getElementsByTagName('head')[0].appendChild(el);
-       el.src = "../include_js.php";
-}, 1000);
-</script>
-</head>
-<body>
-<!-- long loading iframe -->
-<iframe src="longLoad.php?sleep=3&return=true" style="width: 1px; height: 1px"></iframe>
-</body>
-</html>
\ No newline at end of file
diff --git a/test/data/event/asyncQuickReadyTrue.html b/test/data/event/asyncQuickReadyTrue.html
deleted file mode 100644 (file)
index cdcb821..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="content-type" content="text/html; charset=utf-8">
-<title>Test case for jQuery ticket #10067</title>
-<script type="text/javascript">
-// browsers that implement the non-standard event API will load the iframe
-// before loading up jQuery, so quickReady has no effect here
-if( document.attachEvent ){
-       window.parent.iframeCallback(true);
-} else {
-       setTimeout(function () {
-               el = document.createElement('script');
-               el.type = 'text/javascript';
-               el.onload = function () {
-                       jQuery(document).ready(function () {
-                               window.parent.iframeCallback(true);
-                       });
-           }
-               document.getElementsByTagName('head')[0].appendChild(el);
-               el.src = "../include_js.php";
-       }, 1000);
-}
-</script>
-</head>
-<body>
-<!-- long loading iframe -->
-<iframe src="longLoad.php?sleep=30&return=false" style="width: 1px; height: 1px"></iframe>
-</body>
-</html>
\ No newline at end of file
diff --git a/test/data/event/asyncReady.html b/test/data/event/asyncReady.html
new file mode 100644 (file)
index 0000000..e32ff9c
--- /dev/null
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+<title>Test case for jQuery ticket #10067</title>
+<script type="text/javascript">
+if ( document.attachEvent ) {
+       // browsers that use the non-standard event API will load the iframe
+       // before jQuery, so there's no way to fire ready before the iframe loads
+       window.parent.iframeCallback( true );
+} else {
+       setTimeout(function() {
+               el = document.createElement("script");
+               el.type = "text/javascript";
+               el.onload = function() {
+                       jQuery( document ).ready(function() {
+                               window.parent.iframeCallback( true );
+                       });
+           }
+               document.getElementsByTagName("head")[ 0 ].appendChild( el );
+               el.src = "../include_js.php";
+       }, 1000 );
+}
+</script>
+</head>
+<body>
+<!-- long loading iframe -->
+<iframe src="longLoad.php?sleep=15&return=false" style="width: 1px; height: 1px"></iframe>
+</body>
+</html>
\ No newline at end of file
index b9dbb22809d02f4f5322bc03b8b0166a8f41e499..df66bc623b60a7b2d341c18e4ef1c2349b5a06ce 100644 (file)
@@ -7,8 +7,8 @@
 </head>
 <body>
 <script type="text/javascript">
-jQuery(document).ready(function () {
-       window.parent.iframeCallback(true);
+jQuery( document ).ready(function () {
+       window.parent.iframeCallback( true );
 });
 </script>
 <!-- long loading iframe -->
index 545cc05bc9059ebcc85d40bf1e4a29fb9b0ddef8..5d96ec1b7a503d4a50caf74052657939ce99306d 100644 (file)
@@ -2794,23 +2794,20 @@ test("fixHooks extensions", function() {
        jQuery.event.fixHooks.click = saved;
 });
 
-testIframeWithCallback( "jQuery.ready sync load", "event/syncReady", function( isOk ) {
-       expect(1);
-       ok( isOk, "jQuery loaded synchronously fires ready before all sub-resources are loaded" );
-});
 
 // async loaded tests expect jQuery to be loaded as a single file
 // if we're not doing PHP concat, then we fall back to document.write
 // which breaks order of execution on async loaded files
+// also need PHP to make the incepted IFRAME hang
 if ( hasPHP ) {
-       testIframeWithCallback( "jQuery.ready async load with quickReady true", "event/asyncQuickReadyTrue", function( isOk ) {
+       testIframeWithCallback( "jQuery.ready synchronous load with long loading iframe", "event/syncReady", function( isOk ) {
                expect(1);
-               ok( isOk, "jQuery loaded asynchronously with quickReady true fires ready before all sub-resources are loaded" );
+               ok( isOk, "jQuery loaded synchronously fires ready before all sub-resources are loaded" );
        });
 
-       testIframeWithCallback( "jQuery.ready async load with quickReady false", "event/asyncQuickReadyFalse", function( isOk ) {
+       testIframeWithCallback( "jQuery.ready asynchronous load with long loading iframe", "event/asyncReady", function( isOk ) {
                expect(1);
-               ok( isOk, "jQuery loaded asynchronously with quickReady false fires ready after all sub-resources are loaded" );
+               ok( isOk, "jQuery loaded asynchronously fires ready before all sub-resources are loaded" );
        });
 }