我只是想问一个关于我最近看到的很多关于其他开发人员编写的 jQuery/Javascript 插件/小部件的实践的问题。
我维护着很多网站,我经常被要求为各种东西添加新脚本,例如聊天小部件、营销工具等,但是我通常为大多数这些外观发送的代码是这样的。
<script type="text/javascript">
(function() {
var hm = document.createElement('script'); hm.type ='text/javascript'; hm.async = true;
hm.src = ('++www-widget-org+widget-js').replace(/[+]/g,'/').replace(/-/g,'.');
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(hm, s);
})();
</script>
现在我的问题是,当您真正需要做的就是这个时,为什么还要费心编写上面的脚本?
<script src="//www.widget.org/widget.js" type="text/javascript" async></script>
我已经多次看到这种情况,我开始怀疑这种方法的实际好处是什么?如果有的话?
最佳答案
根据 Steve Souders ,此方法用于load scripts in a non-blocking fashion .这是有道理的,因为这些脚本通常是页面的补充并且与功能没有直接关系(为什么仅仅因为您添加了 Google Analytics 等而使您的网站变慢)。
还有其他脚本利用这个机会来初始化一些非常基本的数据(例如 GoogleAnalytics 使用它来 _setAccount
)。我还看到脚本汇总用户统计数据(屏幕大小、代理和其他客户端数据)并将它们也传递给远程脚本(在查询参数中,它们可以稍后查看/分析以获得有关其人口统计的详细信息)。
关于javascript - 为什么开发人员编写这些类型的脚本来嵌入,而一个简单的标签就可以做到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32098152/