Оптимизация виджетов Вконтакте по Page Speed
Столкнулся с проблемой оптимизации группы вконтакте под Page Speed. Наличие группы на главной странице значительно уменьшало количество баллов в Page Speed. Пробовал отложенную загрузку не помогало. Вышел из ситуации подгрузкой группы в процессе прокрутки, как альтернативу можно использовать загрузку по таймеру. Скрипт группы грузим через Ajax.
function loadvk()
{
$.getScript("//vk.com/js/api/openapi.js?147", function(data, textStatus, jqxhr)
{
//ответ на стороне сервера см. внизу
$url = "http://" + document.domain + "/front/city/getajaxvk";
$.getScript($url, function(data, textStatus, jqxhr) {});
});
}
Вешаем обработчик события scroll.vk где vk пространство имен в противном случае при вызове функции $(window).off( scroll ) будет снят обработчик события со всех элементов. Например, используемых плагином LazyLoad
$(document).ready(function ()
{
$(window).on("scroll.vk", function()
{
loadvk();
$(window).off( scroll.vk );
});
});
Ответ на стороне сервера http://" + document.domain + "/front/city/getajaxvk";
VK.Widgets.Group("vk_groups", {mode: 4, no_cover: 1, width: "260", height: "334"}, *6564013*);
Код HTML на главной странице для подгрузки VK
<div id="vk_groups"></div>