Javascript-内联与包含-在加载或运行方面有区别吗?

Javascript-内联与包含-在加载或运行方面有区别吗?,javascript,include,adobe,analytics,inline,Javascript,Include,Adobe,Analytics,Inline,一般问题 我一直在研究在呈现页面时如何加载javascript。特别是,我发现这非常有用: 然而,我似乎找不到任何关于内联javascript和javascript包含之间差异的信息 假设helloWorld.js使用相同的代码,那么加载或运行这些代码的方式有什么区别吗 <script language="JavaScript" type="text/javascript" src="helloWorld.js"></script> <script langua

一般问题

我一直在研究在呈现页面时如何加载javascript。特别是,我发现这非常有用:

然而,我似乎找不到任何关于内联javascript和javascript包含之间差异的信息

假设helloWorld.js使用相同的代码,那么加载或运行这些代码的方式有什么区别吗

<script language="JavaScript" type="text/javascript" src="helloWorld.js"></script>

<script language="JavaScript" type="text/javascript">alert("hello world");</script>

警报(“你好世界”);

我的实施

更具体地说,我正在实施Adobe Analytics。实施指南建议将代码放在页面上,如下所示:

<script language="JavaScript" type="text/javascript">
    var s_code=s.t();if(s_code)document.write(s_code)
</script>

var s_code=s.t();if(s_代码)文档。写入(s_代码)
将此作为包含而不是内联会有任何影响吗

<script language="JavaScript" type="text/javascript" src="sCall.js"></script>


编辑:我相信我的问题最终会有所不同,因为“类似问题”线程中没有人提到阻塞

姆拉登·伊里奇回答了我的问题

没有异步或延迟属性的脚本,以及内联脚本, 在浏览器继续运行之前,立即获取并执行 解析页面

谢谢你的回复

将在

var s_code=s.t();if(s_代码)文档。写入(s_代码)
将是非bloquant


但是,您也可以将
async
属性设置为内联声明。。。这取决于你!你喜欢在哪里看

无论您如何包含它,在这两种情况下,代码都将以相同的方式处理,并具有相同的效果

唯一的影响是维护和性能方面

很明显,维护单独文件中的JS代码更容易,但在性能方面,有两件事需要考虑:

  • 如果您有一个单独的文件,浏览器将能够缓存它
  • 如果您将它与html放在同一个文件中,由于TCP启动缓慢,下载速度会有所加快

  • 我个人倾向于将JS单独保存。

    可能的重复只是为了确保我理解,你是说包含“异步”和内联javascript的行为相同?是的(还有12个)Izio的回答似乎表明内联不会阻止页面加载,但包含会阻止页面加载。您是说您认为这是不正确的?有
    async
    defer
    属性可以添加到脚本中,以更改浏览器对待它们的方式,但是它们没有在您问题中的脚本标记中使用。您可以在MDN上阅读更多关于async和defer的信息:谢谢您的回复。我相信我了解
    async
    defer
    属性,它们可能对我的情况有所帮助。但是,我的问题是,如果没有它们,内联javascript的处理方式是否与包含的javascript不同?不客气。:)没有
    async
    defer
    时,它们的处理方式相同。引用MDN的话:“在浏览器继续解析页面之前,不带async或defer属性的脚本以及内联脚本都会被立即获取并执行。”。是的,这正是我想要的!非常感谢你。我希望我能把你的评论标记为正确答案。