Асинхронная загрузка include

BLACK_DANTE
На сайте с 24.03.2007
Offline
188
1077

Здравствуйте.

Есть кнопки соцсетей, подгружаются под статьей с помощь инклуда

<? include ("../inc_social.php")?>

В php файле коды четырех кнопок (ВК, твиттер, фейсбук и объединенная маил и ОК).

Чекеры скорости загрузки (вроде этого https://developers.google.com/speed/pagespeed/insights/) показывают в среднем 45-50 из 100, т.е. появляются проблемы при загрузке.

http://tools.pingdom.com/fpt/ показывает, что основное время загрузки уходит на кнопки социальных сетей, хотя и проблема не только в них.

Можно-ли грузить этот инклуд асинхронным методом? Как сильно это повлияет на скорость открытия сайта?

Просьба не предлагать сервисы дающие единую кнопку соцсетей.

Будьте людьми.
totamon
На сайте с 12.05.2007
Offline
437
#1

инклуд асинхронноо вряд ли получится грузить))

асинхронно можно грузить ява скрипты от социалок которые видимо прописаны в этом инклюде

Домены и хостинг https://8fn.ru/regru | Дедик от 3000р https://8fn.ru/73 | VPS в Москве https://8fn.ru/72 | Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno | ХОСТИНГ №1 РОССИИ https://8fn.ru/beget
BLACK_DANTE
На сайте с 24.03.2007
Offline
188
#2

Да, такой способ нашел.

Думал можно и инклуд также загрузить.

siv1987
На сайте с 02.04.2009
Offline
427
#3

BLACK_DANTE, там показывается время загрузки скриптов в браузере клиента, а не время выполнения скриптов на сервере. Не смешивайте все понятия в одну кучу. Здесь нужно оптимизировать загрузку скриптов социальных сетей, а не инклуды в php скриптах.

BLACK_DANTE
На сайте с 24.03.2007
Offline
188
#4
siv1987:
Здесь нужно оптимизировать загрузку скриптов социальных сетей, а не инклуды в php скриптах.

Я пытался разом оптимизировать загрузку файла, в котором содержатся эти скрипты. Оказалось что это невозможно, значит будем оптимизировать загрузку самих кнопок.

infant
На сайте с 15.03.2008
Offline
170
#5

BLACK_DANTE, обязательно грузить php через инклуд ?

Что мешает содержимое php инклуда загрузить через аякс после полной загрузки страницы ?

BLACK_DANTE
На сайте с 24.03.2007
Offline
188
#6
infant:
Что мешает содержимое php инклуда загрузить через аякс после полной загрузки страницы ?

Тоже хорошая идея, спасибо.

Осталось реализовать, далек я от этого. Если у кого-то под рукой есть или видели грамотную инструкцию - буду благодарен за ссылку :)

infant
На сайте с 15.03.2008
Offline
170
#7

BLACK_DANTE, вот базовый синтаксис.

хотя можно вот так:

файл вывода станицы, например index.html

в блоке хеад подключаешь библиотеку jquery (в хеадере подключать не обязательно, можно и в конце страницы)

<head>

<script type="text/javascript" src="путь.до.файла.jquery.js"></script>
<script type="text/javascript" src="путь.до.своего.файла.jquery.scr.js"></script>
</head>

в боди, в нужном месте вывода кнопок ставишь див

<div class="ajax_social"></div>

создаешь файл jquery.scr.js с содержимым

$(function(){


$(window).load(function () {
func_ajax_load_social(); // вызываем функцию после полной загрузки страницы
});

// сама функция отправки запроса и получения данных
function func_ajax_load_social() {
var formresult = $('.ajax_social');
var dataString = '&send=ajax';


$.ajax(
{
type: "POST",
url: тут/путь/до/файла/file_btn_social.php,
data: dataString,
timeout: 5000,

success:function(data) {
$(formresult).html(data);

},
error: function(jqXHR, textStatus, errorThrown) {
$(formresult).html('<pre>Ошибка:<br/>Status='+textStatus+', error='+errorThrown+'</pre>');
//console.log (jqXHR.responseText);
}
});



}

});

создаешь файл file_btn_social.php с содержимым

<?php

if ($send == "ajax") {
// здесь код, который будет обработан аяксом и выведен на странице например
print = ' тут <b>что то<b> есть, хз что, но главное не забыть экранировать скобки :)';
} else {
// тут можно выводить все ,что не соответствует запросу
}

?>

предложенный вариант не проверял, по сути должно работать, если не получиться пиши.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий