You've lost me there. If you're trying to block the page based on some
user interaction, then the blockui plugin should work just fine. I
thought the problem you were having, though, was with the page not
being blocked immediately when the user first visits the page. You
asked about document ready and whether it could fire sooner. I offered
a solution that didn't rely on document ready so that the ui would be
blocked immediately until everything was loaded.
I put a test page up so you can see that it does, in fact, solve the
problem that you originally presented:
http://test.learningjquery.com/blockui.html
Note that I added a setTimeout inside the $(window).load() function to
simulate a heavy page.
--Karl
____________
Karl Swedberg
www.englishrules.com
www.learningjquery.com
On Oct 12, 2009, at 4:59 PM, sdtacoma wrote:
Thanks for you help Karl but that didn't seem to solve my problem.
I have more info to add to the issue though. The "Loading..." message
works great if there are say, images on the page loading. It does NOT
work if I am waiting for a query to finish and it's results to be
displayed back to the page.
Any idea why it would work for one and not the other or how I can get
it to work with a query too?
DOES NOT WORK:
<script language="javascript" type="text/javascript" src="/tools/js/
jquery/jquery_1.2.4b.js"></script>
<script language="javascript" type="text/javascript" src="/tools/js/
jquery/jquery.blockui.js"></script>
<script>
$(document).ready(function() {
$.blockUI();
$(window).load(function(){unBlockFunction(); });
});
function unBlockFunction(){
$.unblockUI();
}
</script>
<cfquery datasource="#application.dsn#" name="qSelect" maxrows="100">
select *
from user_info
</cfquery>
<cfdump var="#qSelect#">
DOES WORK:
<script language="javascript" type="text/javascript" src="/tools/js/
jquery/jquery_1.2.4b.js"></script>
<script language="javascript" type="text/javascript" src="/tools/js/
jquery/jquery.blockui.js"></script>
<script>
$(document).ready(function() {
$.blockUI();
$(window).load(function(){unBlockFunction(); });
});
function unBlockFunction(){
$.unblockUI();
}
</script>
<img src="http://wnsl.physics.yale.edu/media/education_full.jpg"><br>
<img src="http://sprottshaw.com/uploads/images/Misc.%20Images/
242351742.jpg"><br>
<img src="http://www.nfq.ie/nfq/en/images/FanDec2006.jpg"><br>
<img src="http://www.efytimes.com/admin/useradmin/photo/The%20Mobile
%20Computer%20Education%20Bus.jpg"><br>
On Oct 10, 9:54 am, Karl Swedberg <k...@englishrules.com> wrote:
document.ready fires when the DOM is fully registered. If you have
large images in the document, document.ready doesn't wait for those
to
completely load. So, it's typically earlier than window.onload, but
it
isn't going to fire before you see stuff on the page.
I haven't tested this at all, and I'm just creating this in email, so
proceed with caution ... but you might want to consider putting
something like this in the <head>:
<script type="text/javascript">document.documentElement.className =
'js';</script>
and in your stylesheet do this:
#uiblocker {
display: none;
}
.js #uiblocker {
display: block;
left: 0;
top: 0;
width: 100%;
height: 100%;
position: fixed;
cursor: wait;
z-index:1001;
}
and in your html, put this right after the opening <body> tag:
<div id="uiblocker"></div>
and in a javascript file, do this:
$(window).bind('load', function() {
$('#uiblocker').hide();
});
So, that /should/ work. For IE6 support, you'll need to either
simulate position: fixed with a css expression or change it to
position: absolute and hope for the best.
Hope that helps.
--Karl
____________
Karl Swedbergwww.englishrules.comwww.learningjquery.com
On Oct 9, 2009, at 2:27 PM, sdtacoma wrote:
Hello,
I am using jQuery and BlockUI to display a "Loading..." message to
the
user while the page is loading.
The problem is that the "Loading..." message seems to show up AFTER
the page has loaded, not during load. Shouldn't the document.ready
fire sooner than that?
What am I doing wrong?
<script>
$(document).ready(function() {
$.blockUI();
setTimeout($.unblockUI, 2000);
});
</script>