30 Facebook Как кнопки на странице перегружают веб-браузер? - PullRequest
5 голосов
/ 09 июля 2011

На странице, содержащей список из примерно 30 записей, каждая из них имеет Facebook-лайк (HTML-код каждой записи содержит кнопку «Нравится»), и каждая из них либо отображается, либо нет (зависит от настройки фильтра):

  • Полная загрузка страницы занимает несколько секунд
  • Страница использует много памяти благодаря кнопкам Like
  • Страница использует процессор, даже если пользователь этого не делает.t взаимодействует (каждые 100 мс или менее, одна из кнопок «Мне нравится» запускает событие с использованием Javascript)
  • Если я не изменяю дерево DOM, просто изменяю видимость элемента, кнопки все равно перезагружаются

На ПК с частотой более 1 ГГц и 1 ГБ памяти страница непригодна для использования, поскольку она слишком медленная (браузер: Chromium).Как я могу это изменить, удерживая кнопки «Мне нравится»?

Ответы [ 4 ]

6 голосов
/ 09 июля 2011
  1. Винил в Facebook "Мне нравится" осуществление
  2. Загрузите Firefox Nightly или «Аврору» и посмотрите на вкладку «about: memory», чтобы получить представление о влиянии памяти на кнопки «Like». (Firefox добавил отчеты о памяти для каждого отделения в about: memory)
5 голосов
/ 09 июля 2011

Используйте JavaScript SDK

Убедитесь, что в xfbml и JavaScript SDK включены подобные кнопки. Таким образом, вы сможете лучше контролировать их.

Не загружайте их изначально, загружайте их явно, когда они вам нужны

Кроме того, в документации по умолчанию рекомендуется заменять теги xfbml немедленно на кнопки в стиле Facebook, как только страница загружена. Поэтому он имеет

    xfbml  : true  // parse XFBML

как опция почти для всех упоминаний вызова FB.init. Вы этого не хотите.

Если у вас так много одинаковых кнопок, вполне вероятно, что вам не нужно загружать их все изначально. JavaScript SDK предлагает функцию для синтаксического анализа и явной замены fbxml. Вы можете вызвать его на определенном узле DOM вместо всей страницы. См. FB.XFBML.parse . Таким образом, вы можете загружать кнопки, когда они вам нужны, вы можете даже лениво загружать только те, которые в данный момент видны в браузере, аналогично методам ленивой загрузки изображений.

0 голосов
/ 28 февраля 2013

Я понимаю, что это старый вопрос, но socialite.js кажется, что это может сработать:

Socialite предоставляет очень простой способ реализации и активации множествакнопок социальных сетей - в любое время.При загрузке документа, при наведении на статью, в любом случае!

Если вы продаете свою душу, вы можете делать это асинхронно.Socialite не приведет к зависанию рендеринга документов в ожидании 50 КБ социальных сетей.

0 голосов
/ 09 июля 2011

Я думаю, что производительность может быть низкой, потому что кнопка «Мне нравится» в Facebook загружается в iframe, загрузка которой занимает намного больше времени. Я не уверен, есть ли такая опция в графе API, но рассмотрите возможность создания пользовательской кнопки «Мне нравится», загружая информацию «Мне нравится» на стороне сервера.

http://www.stevesouders.com/blog/2009/06/03/using-iframes-sparingly/

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