Ata*_*hev 5 javascript jquery dynamic-script-loading
我想通过代码同步包含来自不同域的JavaScript文件.这意味着使用同步XMLHttpRequest
将无法正常工作.我也想避免,document.write
因为我的代码将在文档完全加载时执行.这甚至可能吗?是否有任何现有的JavaScript库支持该功能?
基本上我希望这个工作:
<script type="text/javascript">
$(document).ready(function() {
load("path_to_jQuery_UI_from_another_domain");
console.log(jQuery.ui.version); //outputs the version of jQuery UI
});
</script>
Run Code Online (Sandbox Code Playgroud)
编辑:
我的想法是创建一个jQuery插件,根据启用的功能加载其JavaScript文件.jQuery插件可以随时初始化,这意味着没有document.write.完全可以异步加载JavaScript文件,但人们希望他们的插件在调用后完全初始化$("selector").something();
.因此需要在没有document.write的情况下加载同步JavaScript.我想我只是想要太多.
同步加载文件的唯一方法是document.write脚本标记到您的页面.这通常被认为是一种不好的做法.可能有更好的方法来做你真正想要的事情,但是,本着透明的精神:
document.write('<script src="http://otherdomain.com/script.js"></'+'script>')
Run Code Online (Sandbox Code Playgroud)
应该做的伎俩.您必须转义结束脚本标记,以便解析器不会关闭您编写的脚本标记.
**请注意,您无法动态加载包含的脚本 document.write
无法在 URL 上同步执行脚本。进一步注意,当涉及网络(甚至文件系统!)时,同步任何东西都是一个坏主意。某个人、某个时间、某个地方的系统或网络速度较慢,或者两者兼而有之,突然之间您就挂起了他们的 UI。
同步性不好。异步回调很好。
请注意,作为最坏情况的黑客,您可以$
用自己的函数进行覆盖,该函数返回一个具有正确属性的对象,并且您可以半惰性地评估所有实际调用。如果您开始依赖于调用的立即执行,或者调用的执行与参数的求值混合在一起,那么这当然会中断,但在最坏的情况下,这并非完全难以置信。
归档时间: |
|
查看次数: |
9309 次 |
最近记录: |