mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
remove jQuery.quickReady, save bytes, style nits in tests
This commit is contained in:
parent
bab6f5355c
commit
f925c7a1c9
41
src/core.js
41
src/core.js
@ -60,7 +60,18 @@ var jQuery = function( selector, context ) {
|
|||||||
readyList,
|
readyList,
|
||||||
|
|
||||||
// The ready event handler
|
// 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
|
// Save a reference to some core methods
|
||||||
toString = Object.prototype.toString,
|
toString = Object.prototype.toString,
|
||||||
@ -375,9 +386,6 @@ jQuery.extend({
|
|||||||
// the ready event fires. See #6781
|
// the ready event fires. See #6781
|
||||||
readyWait: 1,
|
readyWait: 1,
|
||||||
|
|
||||||
// should we fire ready on readyState "interactive" ?
|
|
||||||
quickReady: true,
|
|
||||||
|
|
||||||
// Hold (or release) the ready event
|
// Hold (or release) the ready event
|
||||||
holdReady: function( hold ) {
|
holdReady: function( hold ) {
|
||||||
if ( hold ) {
|
if ( hold ) {
|
||||||
@ -389,11 +397,6 @@ jQuery.extend({
|
|||||||
|
|
||||||
// Handle when the DOM is ready
|
// Handle when the DOM is ready
|
||||||
ready: function( wait ) {
|
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
|
// Either a released hold or an DOMready/load event and not yet ready
|
||||||
if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) {
|
if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) {
|
||||||
@ -431,7 +434,7 @@ jQuery.extend({
|
|||||||
// browser event has already occurred.
|
// browser event has already occurred.
|
||||||
if ( document.readyState !== "loading" ) {
|
if ( document.readyState !== "loading" ) {
|
||||||
// Handle it asynchronously to allow scripts the opportunity to delay ready
|
// 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
|
// 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
|
// All jQuery objects should point back to these
|
||||||
rootjQuery = jQuery(document);
|
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
|
// The DOM ready check for Internet Explorer
|
||||||
function doScrollCheck() {
|
function doScrollCheck() {
|
||||||
if ( jQuery.isReady ) {
|
if ( jQuery.isReady ) {
|
||||||
|
@ -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>
|
|
@ -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>
|
|
30
test/data/event/asyncReady.html
Normal file
30
test/data/event/asyncReady.html
Normal file
@ -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>
|
@ -7,8 +7,8 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
jQuery(document).ready(function () {
|
jQuery( document ).ready(function () {
|
||||||
window.parent.iframeCallback(true);
|
window.parent.iframeCallback( true );
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<!-- long loading iframe -->
|
<!-- long loading iframe -->
|
||||||
|
@ -2794,23 +2794,20 @@ test("fixHooks extensions", function() {
|
|||||||
jQuery.event.fixHooks.click = saved;
|
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
|
// 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
|
// if we're not doing PHP concat, then we fall back to document.write
|
||||||
// which breaks order of execution on async loaded files
|
// which breaks order of execution on async loaded files
|
||||||
|
// also need PHP to make the incepted IFRAME hang
|
||||||
if ( hasPHP ) {
|
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);
|
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);
|
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" );
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user