lyu*_*uba 7 javascript ajax document.write
如果你像这样加载javascript到页面是否相同:
<script src="http://domain.net/script.js" type="text/javascript"></script>
并且喜欢这个
<script type="text/javascript">
  document.write("<script src='http://domain.net/script.js' type='text/javascript'></script>");
我在js中有很多依赖项,并希望将其配置为一个单独的数组,它们只是在index.html中捆绑,如:
<script type="text/javascript">
  for (i in config.files.javascripts) {
    document.write("<script src='config.files.javascripts[i]' type='text/javascript'></script>");
  }
</script>
问题是 - 它是否应按预期工作,以便下一个文件在上一个文件加载之前不会被执行?
这是我正在做的前端没有服务器端,它有时也可以作为小部件工作,但对于开发和测试我们应该加载未合并和未压缩的文件进行测试.
谢谢!
回答你的问题:是的,加载的脚本document.write保证按写入的顺序执行.
同样适用于使用W3C DOM方法加载的脚本.
var scriptElm = document.createElement('script');
scriptElm.defer = true; // Causes faster (parallel) loading in some browsers.
scriptElm.src = 'path/to/script.js';
document.getElementsByTagName('head')[0].appendChild( scriptElm );
也就是说,document.write()通常被认为是非常糟糕的做法(由于各种原因),并且可能导致后来的破损和恼人的边缘案例问题.因此,我建议您使用上面显示的W3C DOM注入,如果没有别的话.
-   -   -   - 
然后有脚本加载库,使这种资源加载更容易,更优雅,有时甚至更快.有些并行加载脚本但是以可预测的顺序执行 - 就像已经链接到@ CoBaLt2760的那样http://www.dustindiaz.com/scriptjs
jQuery还有一个非常简单的方法$.getScript( 'path/to/script.js' );(文档),你可以使用.如果内存对我有用,它使用简单的W3C DOM注入.
谷歌"javascript加载"或其他一些,或在StackOverflow上搜索,如果您对这些库的更多链接感兴趣,请参阅.
| 归档时间: | 
 | 
| 查看次数: | 1908 次 | 
| 最近记录: |