如何确保转换函数(在 myjs.js 中定义)始终执行?是否存在由于在加载 myjs.js 之前调用它而可能失败的情况?
<body>
<script type='text/javascript'>
$(function(){
//call a function within myjs.js
$("#id").conversion({
settings : url
});
});
</script>
/*loading myjs.js asynchronously*/
<script type='text/javascript'>
(function(){
var a = document.createElement('script');
a.type = 'text/javascript';
a.async = true;
a.src = 'http://mydomain/myjs.js';
var b = document.getElementsByTagName('script')[0];
b.parentNode.insertBefore(a, b);
})();
</script>
</body>
这是确保始终调用转换函数的正确方法吗?
$.ajax({
url: 'http://mydomain/myjs.js',
dataType: 'script',
cache: true, // otherwise will get fresh copy every page load
success: function() {
// script loaded, do stuff!
$("#id").conversion({
settings : url
});
}
}