async
属性是HTML5的新功能,
表示下载的文件不会调用document.write
,并且可以在处理页面时下载
但是我听说以另一种方式以异步方式加载脚本,这是向后兼容的 使用较旧的浏览器。
事实证明,我可以通过动态重新创建async
属性实现的行为
在JavaScript中创建脚本DOM元素并将其附加到页面。
示例:
var script = document.createElement('script');
script.src = 'http://camerastork.com/widget.js?product=1234';
script.async = true
...
因此,如果它适用于不支持async
的旧浏览器 - 它怎么可能 - 我仍然可以使用.async
属性?
答案 0 :(得分:3)
async
属性/属性比您想象的要早(至少在某些浏览器版块中)。但其真正原因在于,大多数浏览器始终将script
/ createElement
中添加到DOM的所有appendChild
元素视为“异步”(不需要script.async = true
)。几年前,只有几个浏览器同步处理它们(在脚本被提取和执行之前没有执行下一行代码),并且有问题的浏览器已经更新了它们的行为。