推迟解析JavaScript:无法解析

时间:2017-04-12 14:36:26

标签: javascript wordpress

我们正在尝试解决GTmetrix上报告的以下输出:尝试推迟解析javascript以减少页面加载时间。

Screenshot of GTmetrix report

然而,无法成功提高等级"推迟解析Javascript"参数。

我们已经尝试了以下步骤:

  1. 将以下代码行添加到我们网站的/ wp-content / themes /" theme"(porto)中的functions.php中;这没什么帮助。
  2.     // 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
    
    1. 在functions.php中添加了以下代码行,但没有帮助。
    2.     // 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 );
      }
      
      1. 尝试添加' defer =" defer"'手动归属于header.php和footer.php中的javascripts,但没有变化。

      2. 已安装"自动优化"和#34; WP Deferred Javascripts"插件,但这会影响网站的工作(下拉菜单不会出现在悬停中)。

      3. 如果有办法解决这个问题,或者我们是否遗漏了什么,请告诉我们。请帮助。

1 个答案:

答案 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 );