Javascript Firefox没有';“不做”;异步;加载动态脚本注入?

Javascript Firefox没有';“不做”;异步;加载动态脚本注入?,javascript,firefox,asynchronous,javascript-injection,Javascript,Firefox,Asynchronous,Javascript Injection,我有两个js函数,request()和response()。 请求向DOM注入一个动态脚本标记,从服务器加载一些“脚本”。 来自服务器的脚本设置为call response() 现在,如果我立即一个接一个地调用5个,并且第一个调用仍在等待,那么接下来的4个调用仍在进行,响应将返回(我在Firebug中看到),但在第一个调用返回之前,不会调用response()。 这只在Firefox中发生( 为什么不进行函数调用 附言: 如果第一个请求被延迟,我 我不在乎结果,我想要 最后一个要加载的 无延迟呼

我有两个js函数,request()和response()。 请求向DOM注入一个动态脚本标记,从服务器加载一些“脚本”。 来自服务器的脚本设置为call response()

现在,如果我立即一个接一个地调用5个,并且第一个调用仍在等待,那么接下来的4个调用仍在进行,响应将返回(我在Firebug中看到),但在第一个调用返回之前,不会调用response()。
这只在Firefox中发生(

为什么不进行函数调用

附言:

  • 如果第一个请求被延迟,我 我不在乎结果,我想要 最后一个要加载的 无延迟呼叫响应
  • 我尝试了$.ajax,数据类型设置为'jsonp',纯javascript风格插入脚本标记和$.getScript。FF似乎没有什么效果:(
  • 编辑:对于请求代码示例的用户:

    function request(){
    
        var URL = 'http://xxx.xxx.xxx.xxx/cgi-bin/response.php?callback=?';
        callHandle = $.getScript(URL);
    
    }
    
    function response(data){
    
          alert(data);
    }
    
    请求函数调用服务器的php脚本,该脚本包含以下代码:

    $data = $_GET['callback']; //using just to identify request uniquely.
    sleep(rand(1,10));
    echo "response(".$data.")";
    

    现在,如果第一个请求需要10秒,第二个请求需要2秒,那么第二个请求的响应应该被调用。但是它得到了响应,但是没有发出警报,而是等待第一个请求在firefox中完成。为什么会这样呢?

    除非出于教育原因,否则我建议使用一个具体来说,它与这些浏览器特性有关。例如:

    我见过同样的事情:Firefox处理返回响应(javascript包含document.createElement('script'),并将它们附加到Head节点)按照脚本元素添加到文档中的顺序。从程序员的角度来看,这简化了编程。但是,我认为您应该将其视为此浏览器(版本)的实现细节,而不是保证。Google chrome以任何(意外)顺序执行包含的脚本

    在查看firefox 4和HTML5合规性时,这种行为已经被称为“旧firefox行为”()

    旧的firefox行为

    脚本插入外部非异步, 在中执行的非延迟脚本 将它们插入到 文件


    您是否尝试过在文档中插入脚本。写入?

    如何通过
    request()
    将脚本标记注入DOM?请发布一些代码。没有它很难猜出什么是错误的。使用代码编辑原始问题。