相关疑难解决方法(0)

JavaScript是多线程的吗?

这是我的问题 - 我需要使用jQuery.getScript()动态下载几个脚本,并在加载所有脚本后执行某些JavaScript代码,所以我的计划是做这样的事情:

function GetScripts(scripts, callback)
{
  var len = scripts.length
  for (var i in scripts)
  {
    jQuery.getScript(scripts[i], function() 
    {
      len --;
      // executing callback function if this is the last script that loaded
      if (len == 0)
        callback()  
    })
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我们假设每个脚本的script.onload事件触发并按顺序和同步执行,那么这只能可靠地工作,所以当两个或多个事件处理程序通过检查(len == 0)并执行时,永远不会出现这种情况.回调方法.

所以我的问题 - 这个假设是正确的,如果没有,那么实现我想做的事情的方法是什么?

javascript jquery

56
推荐指数
6
解决办法
5万
查看次数

JavaScript的document.write内联脚本执行顺序

我有以下脚本,其中第一个和第三个document.writeline是静态的,第二个是生成的:

<script language="javascript" type="text/javascript">
document.write("<script language='javascript' type='text/javascript' src='before.js'><\/sc" + "ript>");
document.write("<script language='javascript' type='text/javascript'>alert('during');<\/sc" + "ript>");
document.write("<script language='javascript' type='text/javascript' src='after.js'><\/sc" + "ript>");
</script>
Run Code Online (Sandbox Code Playgroud)

Firefox和Chrome将显示之前,期间之后,在Internet Explorer的第一个节目期间才把它显示之前之后.

我遇到过一篇文章,说我不是第一个遇到这个问题的文章,但这并不能让我感觉更好.

有没有人知道如何在所有浏览器中将命令设置为确定性,或者黑客IE浏览器像所有其他浏览器一样工作?

警告:代码片段是一个非常简单的repro.它是在服务器上生成的,第二个脚本是唯一发生变化的脚本.这是一个很长的脚本,并且之前和之后有两个脚本的原因是浏览器将缓存它们,并且代码的动态部分将尽可能小.它也可能在具有不同生成代码的同一页面中多次出现.

javascript browser cross-browser

36
推荐指数
2
解决办法
5万
查看次数

标签 统计

javascript ×2

browser ×1

cross-browser ×1

jquery ×1