Reputation: 10616
It seems that IE8 defers javascript, but also doesn't block. I've setup a test environment to prove this. Here's the html page(replace 192.168.1.xxx with your server):
<html>
<head>
<title>IE Pains</title>
<script type='text/javascript' src='http://192.168.1.xxx/ietest/js.js'></script>
<script type='text/javascript'>
scream('hello world');
</script>
</head>
<body>
</body>
</html>
And the js File:
function scream( str ) {
alert( str );
}
Am I seeing this wrong, or does IE not recognize the scream function because it hasn't finished loading js.js?
EDIT: I created the pages on my server: http://www.codenothing.com/ietest/, which loads fine in IE8, but bringing it down to local machine, and going through local network seems to be failing. I have confirmed this on 2 different wireless networks going through the 192.168 protocol.
Upvotes: 0
Views: 220
Reputation: 344803
Scripts are blocking in all browsers, including IE8, unless the async
or defer
attributes are present. Vast amounts of scripts rely on the predictability of script elements blocking parsing, including libraries and frameworks (for instance, how could you declare $(document).ready()
if the browser didn't wait for the jQuery script to complete?)
Check the following:
You could even try the jQuery library itself:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.js"></script>
<script type="text/javascript">
$(function(){
alert("test");
});
</script>
Upvotes: 2