0
core.js:
var core =
{
all:{},
load: function(jsUrl)
{
$.ajaxStup({async, false});
$.getScript(jsUrl);
},
init: function()
{
$.getJSON('someurl', function(data)
{
for(key in this.all)
alert(key);
});
},
here: function(who)
{
this.all[who.name] = who;
}
};
$(document).ready(function()
{
core.init();
});
me.js
(function()
{
core.here({name:"me", foo:"bar"});
})();
CASE 1:
<script type="text/javascript" src="/jquery.js"></script>
<script type="text/javascript" src="/core.js"></script>
<script type="text/javascript">
core.load("/me.js");
</script>
CASE 2:
<script type="text/javascript" src="/jquery.js"></script>
<script type="text/javascript" src="/core.js"></script>
<script type="text/javascript" src="/me.js"></script>
问题是,对于情况1我得到一个警报,因为我应该,但情况2,没有警报... 所以问题是:有一个负载事件标签?或者我可以使用什么来同步文件以处理案例2(在IE8中进行调试时,我注意到使用断点解决了这个问题)...有什么我错过了吗?同步加载JS用Ajax调用和加载js文件的文件与<script>标签
我看着这个和document.ready应该触发一旦浏览器具有所有的Javascript,所以me.js&core.here应该已经加载并运行...因此填充'全部'并发射你的alert() 。 但是从代码设计的角度来看,在文档加载时调用init可能很奇怪。为什么不在加载之后调用它,就像这是一个构造函数。那么有没有在推送/上传后调用它或调用它? – 2010-10-28 04:20:10
@Ryan Doom事实上,document.ready只是指出我已经尝试了一些(很多...)的东西......我期望在这里调用'here'函数,因为document 。如你所说,一旦浏览器解析(加载)所有