1

ページにさまざまなアイテムがあり、人々が「推奨」をクリックして投票する必要があるページを作成しました(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> 
4

1 に答える 1

3

Like ボタンの FBML バージョンを使用することをお勧めします。その後、TechCrunch がストーリーのマウスオーバーで行うようにオンデマンドで表示したり、ページの読み込み後に読み込みを開始したりできます (つまり、DOM の準備が整った状態で)。Facebook init で自動 FBML 解析をオフにすると、FB.XFBML.parse(DOM ID) を使用して各 Like ボタンがレンダリングされます。

iframe を直接使用すると、ページの読み込み時に 100 の Web ページを読み込もうとしていることになります。特にブラウザーがドメインごとに最大 8 つの接続しか開かない場合は、これは多くのことです。開いていないものもあります。したがって、100 個の「いいね!」ボタンがあると、すべてをロードするのに 12 回以上の「ラウンド」が必要になります。

サーバー上の各ストーリーの「いいね!」の数を取得してキャッシュしていると仮定しています。

于 2011-08-27T12:22:44.200 に答える