2011-02-03 2 views
3

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

Вот код:

<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> 

Благодаря

UPDATE: Я нашел этот код для загрузки 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

ответ

1

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

+0

в соответствии с здесь: https://developers.facebook.com/docs/reference/javascript/FB.init/ идентификатор приложения является необязательным. – roadsunknown

1

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

+0

Вы знаете, как иметь браузер держать JScript в кеш, поэтому он не постоянно перезагружается? – harold

+0

Ну, вы ответили, что вопрос - это тот смысл, который я задал. Он напишет новый вопрос для решения другой проблемы. – harold

+0

Я сделал обновление и пометил вопрос без ответа. – harold

1

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

Вы спрашивали 2 вещи, один FB App ID, а другой JavaScript Кэширование ,

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

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

В файле .htaccess

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

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

Надеетесь, что это помогает

Смежные вопросы