我正在嘗試創建一個移動輪播,我發現最好的事情是使用 jquery 移動庫,問題是當它直接包含在模板中時,它會阻止渲染。
順便說一句,我正在使用wordpress。
這就是為什么我的查詢基于是否有任何好的做法來包含庫(在我的情況下是 jQuery Mobile)而不損壞加載/或頁面速度分數。
從已經非常感謝你!!!
uj5u.com熱心網友回復:
您始終可以<script>通過添加defer屬性來修改標記的輸出。這將使您的(JS)腳本非阻塞。
具有 defer 屬性的腳本將阻止 DOMContentLoaded 事件觸發,直到腳本加載并完成評估。MDN
首先將您的wp_enqueue_script和包裹wp_enqueue_style在wp_enqueue_scripts動作處理程式中。這是注冊和排隊腳本和樣式WP Docs的正確方法。
add_action('wp_enqueue_scripts', function() {
wp_enqueue_script('jqm_js', 'https://code.jquery.com/mobile/1.2./jquery.mobile-1.2.0.min.js', ['jquery'], '1.2.0');
wp_register_style('jqm_css', 'https://code.jquery.com/mobile/1.2./jquery.mobile-1.2.0.min.css', [], '1.2.0');
wp_enqueue_style('jqm_css',);
}, 10);
使用script_loader_tag過濾器,您可以修改<script>標簽的生成方式。如果句柄在$handles陣列中,以下代碼段將檢查已注冊和入隊的每個腳本。如果是,那么它將defer向腳本添加一個屬性。
修改$handles陣列中的值以添加或洗掉要延遲的任何腳本。
add_filter('script_loader_tag', function ($tag, $handle, $src) {
$handles = ['jqm_js'];
if (in_array($handle, $handles)) {
$tag = str_replace(' src', ' defer="defer" src', $tag);
}
return $tag;
}, 10, 3);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/387783.html
