gpt4 book ai didi

javascript - Onesignal 插件延迟 JS

转载 作者:行者123 更新时间:2023-11-30 20:51:24 27 4
gpt4 key购买 nike

您好,我有一个 wordpress 网站,我根据 GT Metrix 的建议设置了延迟脚本。除了 Onesignal Push Notification 插件,所有脚本都被推迟,

<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async></script>

function js_defer_attr($tag){

$scripts_to_exclude = array('.jsdelivr');

foreach($scripts_to_exclude as $exclude_script){
if(true == strpos($tag, $exclude_script ) )
return $tag;
}
return str_replace( ' src', ' defer="defer" onload src', $tag );
}
add_filter( 'script_loader_tag', 'js_defer_attr', 10 );

我猜它是在页面加载/延迟完成后添加脚本加载?

有什么帮助吗?干杯

最佳答案

我在我的网站上完成了它并且工作正常......并且更重要的页面内容将首先加载。这样用户体验会更好。

我会解释我做了什么。

我更改了 OneSignal 插件代码并将其广告到标题的所有代码移至另一个文件。文件不存在时在运行时创建。

假设我创建了一个名为“onesignal_deferred.js”的新文件。

然后我在页面的页脚添加了:

function add_script(url){
var element = document.createElement("script");
element.src = url;
document.body.appendChild(element);
}
function downloadJSAtOnload(){
add_script("add_script("https://<domain>/onesignal_deferred.js")
}
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;

list 也不是必需的...因为它适用于旧版本的 Chrome...所以这是一项新的优化,您可以为每次页面查看多保存一个请求。

我还可以使用相同的函数“add_script”来延迟其他脚本,例如 Google Analytics 和任何其他脚本。

p.s.:当您延迟 Google Analytics 时,有时它不会将在加载事件之前关闭的页面计为一次查看...在这种情况下,您可能会被虚假的 Google Analytics 报告所欺骗,该报告称页面加载速度更快.情况是页面加载速度太慢将不会被计入...因为甚至不会加载 Google Analytic 脚本。

关于javascript - Onesignal 插件延迟 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48143777/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com