为什么 Piwik 在所有其他标签之前插入脚本标签?
Why does Piwik insert the script tag before all others?
我注意到 Piwik 跟踪代码在 <head>
中的第一个脚本标签之前插入了脚本标签:
var d=document,
g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
...
s.parentNode.insertBefore(g,s);
这有什么原因吗?我可以将它插入 <head>
的末尾甚至正文中吗?
是的,您可以将其插入任何位置。当一个脚本做这样的事情时,它被认为是一件好事。它将把它放在与页面上第一个脚本相同的位置,这大概是页面作者希望放置他的脚本的位置。如果第一个脚本在 <head>
或 <body>
中,那么它就会放在那里。
没有真正的原因,而且脚本本身也没有真正的好处。它正在加载外部资源这一事实意味着它将在 之后 页面完成加载并执行页面中硬编码的脚本(由于 JS single-threaded性质以及加载这样的脚本将导致其以 async
方式运行的事实)。
基本上你可以让它加载到任何你想要的地方,但大概它不会给你带来好处,页面加载速度,或者脚本本身。
我注意到 Piwik 跟踪代码在 <head>
中的第一个脚本标签之前插入了脚本标签:
var d=document,
g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
...
s.parentNode.insertBefore(g,s);
这有什么原因吗?我可以将它插入 <head>
的末尾甚至正文中吗?
是的,您可以将其插入任何位置。当一个脚本做这样的事情时,它被认为是一件好事。它将把它放在与页面上第一个脚本相同的位置,这大概是页面作者希望放置他的脚本的位置。如果第一个脚本在 <head>
或 <body>
中,那么它就会放在那里。
没有真正的原因,而且脚本本身也没有真正的好处。它正在加载外部资源这一事实意味着它将在 之后 页面完成加载并执行页面中硬编码的脚本(由于 JS single-threaded性质以及加载这样的脚本将导致其以 async
方式运行的事实)。
基本上你可以让它加载到任何你想要的地方,但大概它不会给你带来好处,页面加载速度,或者脚本本身。