csstome 发表于 2013-1-29 09:38:05

]如何确保JavaScript的执行顺序 –之jQuery1.5.1与jQuery1.4.4的差异

我们发现jQuery.html函数在动态加载跨域JavaScript时,在Firefox和Opera中可以按照引入顺序执行,而在IE,Chrome和Safari中都不能确保执行顺序。
经过分析,我们发现jQuery.html在处理跨域静态JS文件时,并非采用的同步AJAX(也存在同源策略的限制),而是在head中添加script标签来完成的。
 
我们先来简单回顾下HTML源代码(test2_1.htm):
<div style="border: 1pt solid #7f7f7f; padding: 1pt 4pt; margin-left: 10.5pt; margin-right: 0cm;"><html>
<head>
    <title></title>
    <script src="js/jquery-1.4.4.js" type="text/javascript"></script>
    <script>
        $(function(){
            $('#container').html('<script src="http://test1.sanshi.me/jsorder/service.ashx?file=js/jquery-ui.js&delay=2000" type="text\/javascript"><\/script>' + '<script>alert(typeof(jQuery.ui));<\/script>');
        });
    </script>
</head>
<body>
    <div id="container">
    </div>
</body>
</html>
页: [1]
查看完整版本: ]如何确保JavaScript的执行顺序 –之jQuery1.5.1与jQuery1.4.4的差异