Как удержать кнопку «Нравится» на Facebook от задержки загрузки на моем сайте? - PullRequest
3 голосов
/ 03 февраля 2011

Я добавил кнопку «Мне нравится» на своем сайте.При загрузке приведенного ниже jscript происходит задержка, а остальная часть страницы не загружается, пока не будет завершена.Кроме того, если я блокирую Facebook с помощью своего брандмауэра, то перед тем, как он сдастся, будет очень долгая задержка, после чего отобразится остальная часть моей страницы.Как мне сначала отобразить страницу, а затем кнопку «Мне нравится»?(Я сделал это, чтобы увидеть, что произойдет, если у Facebook возникнут проблемы.) Кроме того, когда я загружаю разные страницы, кнопка «Мне нравится в Facebook» продолжает перезагружаться (до перезагрузки она заметно отсутствует - 1/3 секунды.) Кнопка находится в том же местена каждой странице, в баннер сверху.Другие изображения не перезагружаются - они кэшируются - и они выглядят статичными при выборе другой страницы.Есть ли способ сделать этот сценарий кэшированным?

Вот код:

<div style="position: absolute; top:20px; right:85px; width:70px; height:25px">
    <script type="text/javascript" src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
    <fb:like href="http://www.facebook.com/pages/somepage/somenum" layout="box_count" show_faces="false" width="50"></fb:like>
</div>

Спасибо

ОБНОВЛЕНИЕ: Я нашел этот код для асинхронной загрузки all.js:

"Другой способ - загрузить асинхронно, чтобы не блокировать загрузку других элементов вашей страницы:"

<div id="fb-root"></div><script>window.fbAsyncInit = function() {  
FB.init({appId: 'your app id', status: true, cookie: true,  
xfbml: true});  
};  
(function() {  
var e = document.createElement('script'); e.async = true;  
e.src = document.location.protocol +  
'//connect.facebook.net/en_US/all.js';  
document.getElementById('fb-root').appendChild(e);  
}());  
</script>  

Но что такое "идентификатор вашего приложения?"Этот код отсюда http://www.mohammedarif.com/?p=180

Ответы [ 3 ]

1 голос
/ 12 февраля 2011

Вы можете загрузить асинхронно, как я описал в обновлении вопроса. Вы получаете идентификатор приложения от «создать приложение» на Facebook. (Google это ...)

1 голос
/ 08 июня 2011

Гарольд, вы получили код с моего веб-сайта, спасибо, чтобы увидеть его снова здесь:)

Вы задали 2 вещи, одна из них - FB App ID, а другая - JavaScript Caching.

Надеюсь, вы уже получили способ получить идентификатор приложения, давайте поговорим о следующем пункте.

Установка даты истечения срока действия или максимального возраста в заголовках HTTP для статических ресурсов (JavaScript / CSS) дает указаниебраузер для загрузки ранее загруженных ресурсов с локального диска, а не по сети.

В файле .htaccess

AddOutputFilter DEFLATE css js
ExpiresActive On
ExpiresByType application/x-javascript A2592000

Дополнительные советы по настройке производительности веб-сайта можно получить по адресу http://developer.yahoo.com/performance/rules.html

Надеюсь, это поможет

1 голос
/ 03 февраля 2011

Загрузка элементов происходит сверху вниз в коде.Если поверх кода загружен очень большой ресурс, это приведет к задержке общей загрузки.Если вы хотите показать свою страницу раньше, поместите эту кнопку в конце кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...