javascript - HTML中两种JS实现的区别

标签 javascript html

这两种 JavaScript 在 HTML 文件中的实现有什么区别?

  1. <script src="foo.js" type="text/javascript"></script>

  2. Google Analytics 以编程方式执行此操作:

      (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript';
    ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 
    'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(ga, s);
        })();
    

浏览器加载/渲染 HTML 页面的方式是否存在任何差异,或者缓存此类 JS 脚本的连接是否存在差异?

最佳答案

您的第一个脚本标记强制浏览器同步拉入该文件;换句话说,浏览器将停止所有其他事件来下载、解析和执行脚本,然后再继续渲染页面。

在第二种情况(您的谷歌内容)中,动态创建脚本元素并异步加载文件。

第一个标签是blocking ,第二个不是。

有关异步的更多信息:

有关“阻止”脚本影响的更多信息:

摘要:如果脚本阻塞,请将其放在页面底部。

关于javascript - HTML中两种JS实现的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12144896/

相关文章:

javascript - 在javascript中将innerHTML字符串转换为DOM结构

javascript - javascript函数中的奇怪行为

jquery - slideToggle 工作正常,除了在 IE 中,除非给出最小高度,否则 div 隐藏在最后?

javascript - 如何使用 JavaScript 设置表单按钮(没有 id)的标题属性

php - 尝试让 PHP 将 html 发送到服务器中间脚本

javascript - Web 组件与小部件 : Is there a difference?

javascript - 使用 CodeIgniter 的 Ajax 驱动内容

javascript - 为什么绝对定位的父项中的百分比宽度子项在 IE 中不起作用?

javascript - javascript中视差滚动的背景位置问题

java - Jsoup - 只保留标签并删除所有文本