Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
220 views
in Technique[技术] by (71.8m points)

javascript - <script defer> and $(document).ready

According to http://caniuse.com/script-defer, most browsers support the script tag's defer attribute.

I would like to know if scripts specified by <script defer src="..."> get executed before or after jQuery's $(document).ready()? Are the major, modern browsers (Chrome, Firefox, IE, etc.) consistent in the order of execution or does it vary?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Based on this fiddle I have to say jQuery's $(document).ready() executes after a script declared with defer. I tested it with Firefox and Chrome, and both had the same behavior independently of the sequence of the scripts.

I guess behavior on other browsers might change based on their implementation, so it's always uncertain.

EDIT: As it turns out, the defer attribute should be used with an external javascript file. I edited the fiddle to show this, apparently with the same results.

Updated fiddle here: http://jsfiddle.net/RNEZH/15/


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...