Webkit线程化javascript文件加载和执行顺序
我正在尝试构建一个XSS小部件,并且我遇到了Webkit浏览器加载外部javascript文件的问题,我将这些文件附加到dom中。 它的工作原理如下:
- Widget.js将3个javascript文件附加到dom(jquery,data,content)
- Jquery.js是带有自定义命名空间的标准jquery
- Data.js是一个javascript数组
- Content.js是一组jQuery指令,用于根据Data.js中的数据构建窗口小部件
在firefox中,浏览器正好100%的时间告诉它,并且小部件加载了你在页面上放置包含javascript的地方。
但是在Webkit即Safari中,浏览器以随机顺序返回3个文件,并在返回后执行。 这意味着当Content.js查找$来执行jquery魔术时它会失败。 同样,如果jQuery可用,并且如果由于缺少数据而失败则会加载数据。
建议好吗?
执行此操作的最佳方法是仅连接服务器上的文件 – 这样您就可以将3个http请求转换为1个,并且脚本将一起解析和执行。
如果你不能这样做,你是否必须通过将它们附加到dom来添加脚本标记? 如果您只是在HTML中添加它们,它应该工作: