2015-08-28 2 views
2

Я просто делаю некоторые тесты on one of my random domains и когда я бегу домен через Google PageSpeed Insights со следующим JavaScript подгружается:Google PageSpeed ​​Insights Приоритетность Невидимое содержание

$("[data-min-height]").each(function() { 
    var dataHeight = $(this).data("min-height"); 
    var dataPercent = dataHeight/100; 
    $(this).css("min-height", function() { 
      return $(window).height() * dataPercent; 
    }); 
}); 

Я получаю ошибку Приоритетность видимого содержимого. Если я заберу JavaScript, я больше не получу ошибку. Я использую matthiasmullie/minify для сжатия всего моего JavaScript. В настоящее время у меня есть jQuery, PaulSpr/jQuery-Flex-Vertical-Center и liabru/jquery-match-height. Все скомпилировано в один файл с именем path.js. Я загружаю этот файл прямо перед закрывающим элементом тела, и я использую defer.

Итак, если у кого-то есть идеи относительно того, почему приведенный выше JavaScript может вызвать эту ошибку на странице PageSpeed, это было бы очень признательно. Спасибо.

+0

Вы можете мне вставить этот JS-код в ''? –

+0

Нет, он находится в файле path.js (который загружается непосредственно перед закрывающим элементом body). Вот почему я не получаю его, вызывая его с остальной частью javascript (jQuery, MatchHeight и т. д.) на дно. – antfuentes87

+0

попробуйте динамически создать элемент 'script', присвоив ему' type' и 'src', а затем, наконец, добавив его в' head' документа. ' ' –

ответ

0

Причина эта ошибка из-за JQuery каждой функции. Я перестроил то же самое, но использовал только цикл JavaScript for (без jQuery), и ошибка исчезла.

var arr = document.querySelectorAll("[data-min-height]"); 
for (var i = 0; i < arr.length; i++){ 
    var currentWindowHeight = window.innerHeight; 
    var dataHeight = arr[i].dataset.minHeight; 
    var dataPercent = dataHeight/100; 
    var dataPercentHeight = currentWindowHeight * dataPercent; 
    arr[i].style.minHeight=dataPercentHeight + "px"; 
}