动态JavaScript是否同步添加
Is dynamic javascript added synchronously or not?
此外,何时加载代码,何时加载.src
属性或追加元素。 举例说明:
var test = document.createElement('script');
test.src = 'some_path';
// is code loaded here?
document.head.appendChild(test);
// or here?
...
// or is it an asynch operation?
动态创建脚本元素时,在将元素插入文档之前,不会加载或执行源文件。脚本的加载是异步的。这意味着您的代码执行以下操作:
- 创建脚本元素
- 分配源属性
- 将元素放入文档中
- 开始异步加载源文件
- 加载后,执行脚本
编辑:感谢您指出设置异步属性对脚本的加载行为没有任何影响。我从未真正使用它并假设它会起作用,但它显然没有。我删除了声称它会的部分。我举了一个例子来说明这一点。
Javascript 从上到下运行,除非它是一个函数、对服务器的异步调用,或者在等待某个事件的闭包中(即:window.load()
您的代码如下所示:
var test = document.createElement('script');
//declare variable test to create script element
test.src = 'some_path';
//define element with src attribute 'some_path'
document.head.appendChild(test);
//place script element in head block
尽管我建议在服务器端创建动态脚本块,以避免由于异常和高负载/超时可能性而导致的复杂性。
您可以在Firebug和Chrome Dev工具中插入断点,以逐步浏览脚本并查看正在发生的事情。 更多信息: https://developers.google.com/chrome-developer-tools/docs/javascript-debugging
相关文章:
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在映射数组中添加换行符
- 正在将数据主题添加到所有项目
- ZeroClipboard-在复制之前添加到值
- 我可以在json对象中添加一个函数吗
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何添加浮动和非浮动,其他
- 添加文字和评论功能更新Div
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 在函数中添加数组元素的数值
- 动态JavaScript是否同步添加
- Firebase.ServerValue.TIMESTAMP在侦听器和实际添加数据的客户端之间未同步
- 填充和添加选择选项并与数据库同步
- 如何使用phonegap同步设备日历以进行事件添加
- 同步2个猫头鹰旋转木马或添加回调,如“onchangeprev”,“onchangenext”
- 主干.js添加自定义同步以制作加载效果
- 如何添加与我的按钮同步的多个字段?
- 以编程的方式向angularfire添加字段,并与Firebase同步