一些Web應用程序(我正在考慮Disqus和LiveFyre)通過Javascript創建<script>
標籤,並通過Javascript指定新腳本異步加載。爲什麼他們通過Javascript創建標籤?而不是簡單地做:爲什麼通過Javascript創建腳本標記,而不是使用延遲或異步腳本標記屬性?
<script src="..." async>
一個例子:
這是Disqus如何指導網站所有者加載評論:
<script type="text/javascript">
var disqus_shortname = ...
(function() {
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] ||
document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
而且src = ...disqus.com/embed.js
地址是一個簡單的重定向到一個靜態腳本在另一個Disqus服務器上,顯然獨立於disqus_shortname。
爲什麼不能代替告訴人們使用這段代碼:
<script>
var disqus_shortname = ...
</script>
<script src="http://direct-address-to-the-embed.js-script" async>
或者更簡單,只有一行:
<script src="http://the_disqus_shortname.disqus.com/embed.js" async>
?
(PS我加了下面一個答案。請不要添加其他的答案太:-))
嗨,謝謝你的回答!我得到的印象是你回答了另一個問題,即「爲什麼他們把''? – KajMagnus