Помощь с несколькими кнопками в стиле Facebook на одной странице - PullRequest
1 голос
/ 04 июня 2010

Я создал страницу, где на странице есть различные элементы, и людям нужно проголосовать за них, нажав «рекомендовать» (например, как они есть на levi.store.com). Элементы сортируются в зависимости от количества «рекомендует», которые они получают. У меня проблема в том, что таких элементов 100, и когда я пытаюсь их отобразить, они становятся слишком медленными. Есть ли способ сделать это более эффективно, это какой-то псевдокод того, что у меня есть (я использую Wordpress)

                $theCategory = 'the-item-category'; //every item is a post and is placed into this category
                $items->query('cat='.$theCategory); //this gets all those items in that category

                while($items->have_posts()) : $items->the_post();  

         <h1><?php the_title(); ?></h1>     

  <iframe src="http://www.facebook.com/plugins/like.php?href=<?php echo urlencode(get_permalink($post->ID)); ?>&amp;layout=button_count&amp;show_faces=false&amp;width=450&amp;action=recommend&amp;font&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:140px; height:21px;" allowTransparency="true"></iframe> 

1 Ответ

3 голосов
/ 27 августа 2011

Я бы рекомендовал использовать FBML-версию кнопки «Мне нравится». Затем вы можете отобразить их по требованию, как TechCrunch, при наведении указателя мыши, или начать их загрузку после загрузки страницы (т. Е. В DOM ready). Отключите автоматический синтаксический анализ FBML в вашей инициализации Facebook, и они используют FB.XFBML.parse (DOM ID) для отображения каждой кнопки «Нравится».

Использование iframes напрямую означает, что вы пытаетесь загрузить 100 веб-страниц при загрузке страницы. Это очень много, особенно когда браузеры открывают не более 8 соединений на домен. Некоторые открываются меньше. Таким образом, с 100 кнопками Like, для загрузки всего потребуется более десятка «раундов».

Я предполагаю, что вы выбираете и кэшируете количество лайков, которые каждая история имеет на сервере.

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