如何使用Widget Defer提高页面速度
有没有办法
defer 页脚中的小部件?
我在页脚小部件中有一个外部API,这会减慢我的速度page. 在加载页面之前不需要它。
我使用的缓存插件(W3 Total Cache)为我提供了延迟其他脚本的选项,但没有直接编码到小部件中的脚本。
手动操作的最佳方式是什么defer 页脚的WordPress小部件区域中的自定义代码API?
像这样
<script type="text/javascript">
baseUrl = "https://widgets.cryptocompare.com/";
var scripts = document.getElementsByTagName("script");
var embedder = scripts[ scripts.length - 1 ];
var cccTheme = {"General":{"background":"#ffffff14","borderWidth":"0","borderColor":"none"},"Tabs":{"background":"#ffffff08","color":"#eee","activeBackground":"#ffffff14","activeColor":"#fff"},"Row":{"color":"#eee","borderColor":"#016ac1"},"Trend":{"colorDown":"#b7b6b6","colorUp":"#50dcb6","colorUnchanged":"#dddddd"},"Conversion":{"color":"#006ac1"}};
(function (){
var appName = encodeURIComponent(window.location.hostname);
if(appName==""){appName="local";}
var s = document.createElement("script");
s.type = "text/javascript";
s.async = true;
var theUrl = baseUrl+\'serve/v1/coin/multi?fsyms=BTC,LBC,ETH&tsyms=USD,BTC,GBP,CNY\';
s.src = theUrl + ( theUrl.indexOf("?") >= 0 ? "&" : "?") + "app=" + appName;
embedder.parentNode.appendChild(s);
})();
</script>
最合适的回答,由SO网友:Александр Фишер 整理而成
您的代码显示了一个内联脚本,它向DOM中添加了一个新的脚本标记,这可能会减慢网站的加载时间。这不是内联脚本标记。尝试添加此行s.defer = true;
之后s.async = true;
添加defer
属性到脚本标记。然后应该如下所示:
var s = document.createElement("script");
s.type = "text/javascript";
s.async = true;
s.defer = true; //add this line
var theUrl = baseUrl+\'serve/v1/coin/multi?fsyms=BTC,LBC,ETH&tsyms=USD,BTC,GBP,CNY\';
s.src = theUrl + ( theUrl.indexOf("?") >= 0 ? "&" : "?") + "app=" + appName;
embedder.parentNode.appendChild(s);
这将导致添加一个新的脚本标记(名为
s
页面将加载的所有脚本,它应该如下所示:
<script type="text/javascript" async defer src="https://widgets.cryptocompare.com/serve/v1/coin/multi?fsyms=BTC,LBC,ETH&tsyms=USD,BTC,GBP,CNY"></script>