我们正在尝试解决GTmetrix上报告的以下输出:尝试推迟解析javascript以减少页面加载时间。
然而,无法成功提高等级"推迟解析Javascript"参数。
我们已经尝试了以下步骤:
// Custom Scripting to Move JavaScript from the Head to the Footer
function remove_head_scripts() {
remove_action('wp_head', 'wp_print_scripts');
remove_action('wp_head', 'wp_print_head_scripts', 9);
remove_action('wp_head', 'wp_enqueue_scripts', 1);
add_action('wp_footer', 'wp_print_scripts', 5);
add_action('wp_footer', 'wp_enqueue_scripts', 5);
add_action('wp_footer', 'wp_print_head_scripts', 5);
}
add_action( 'wp_enqueue_scripts', 'remove_head_scripts' );
// END Custom Scripting to Move JavaScript
// Defer Javascripts
// Defer jQuery Parsing using the HTML5 defer property
if (!(is_admin() )) {
function defer_parsing_of_js ( $url ) {
if ( FALSE === strpos( $url, '.js' ) ) return $url;
if ( strpos( $url, 'jquery.js' ) ) return $url;
// return "$url' defer ";
return "$url' defer onload='";
}
add_filter( 'clean_url', 'defer_parsing_of_js', 11, 1 );
}
尝试添加' defer =" defer"'手动归属于header.php和footer.php中的javascripts,但没有变化。
已安装"自动优化"和#34; WP Deferred Javascripts"插件,但这会影响网站的工作(下拉菜单不会出现在悬停中)。
如果有办法解决这个问题,或者我们是否遗漏了什么,请告诉我们。请帮助。
答案 0 :(得分:1)
我能够通过将以下代码行添加到/wp-includes/functions.php来解决这个问题
/* Function for defer parsing of javascripts, for loading the website
faster */
function defer_parsing_of_js ( $url )
{
if ( FALSE === strpos( $url, '.js' ) )
return $url;
if ( strpos( $url, 'jquery.js' ) )
return $url;
if ( strpos( $url, 'wp-custom-countdown' ) )
return $url;
return "$url' defer ";
}
add_filter( 'clean_url', 'defer_parsing_of_js', 11, 1 );