代码之家  ›  专栏  ›  技术社区  ›  Jeff

JavaScript在这种情况下是如何表现的?

  •  0
  • Jeff  · 技术社区  · 16 年前

    为了提高速度,我试图决定是否将我的JavaScript放在 <head> </body> 我的网站。我更喜欢头部,不关心额外的HTTP请求,只关心这个脚本的行为。

    以下是背对背加载的两个代码片段(Google Analytics):

    脚本1:

    // Loaded externally:
    // <script type="text/javascript" src="google_analytics_1.js"></script>
    
    var gaJsHost = (
        ( "https:" == document.location.protocol ) ?
        "https://ssl." :
        "http://www."
    );
    
    document.write( unescape(
        "%3Cscript src='" +
        gaJsHost +
        "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"
    ) );
    

    脚本2:

    // Loaded externally:
    // <script type="text/javascript" src="google_analytics_2.js"></script>
    
    try {
        var pageTracker = _gat._getTracker( "UA-0000000-0" );
        pageTracker._trackPageview();
    }
    catch( err ) { }
    

    使用上面的代码,JavaScript是否会延迟发送页面的其余部分,直到它检索到 ga.js ga.js 排队,现在我将继续发送页面的其余部分,同时等待它下载到客户端。.."?

    我的直觉告诉我它是线性的,页面会延迟到 ga.js 已被客户端完全下载。是吗?

    2 回复  |  直到 16 年前
        1
  •  0
  •   Hector Minaya    16 年前

    加载ga.js文件时,页面的解析将暂停,但服务器将继续发送页面的其余部分。加载并执行脚本后,它将继续执行页面的其余部分。

    因此,脚本和页面的其余部分将并行加载,但在处理脚本之前,它不会接触页面的任何其他部分。

        2
  •  0
  •   Guffa    16 年前

    没有。它不会被推迟的。它会将第一个请求排队,然后继续处理第二个请求,实际上是浏览器在处理它。