用緩沖輸出優化 WordPress 頁面生成性能
來源:程序員人生 發布時間:2014-01-27 10:56:34 閱讀次數:3475次
WordPress 的性能一致被廣大用戶所詬病,讓我們來一起稍微優化優化。
除了 wp_head() 函數的對 WordPress 系統性能的影響外,主循環中層層嵌套的循環語句也消耗了大量的數據庫查詢時間。
比如,最為常規的循環輸出首頁文章列表:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h2><a href=http://www.mangguo.org/"<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<ul><?php $tags = get_the_tags(); foreach($tags as $tag) echo '
<li><a href=http://www.mangguo.org/"'.get_tag_link($tag -> term_id).'">'.$tag -> name.'</a></li>'; ?>
</ul>
<?php endwhile; else : endif; ?>
在這個簡單的循環體中,還嵌套輸出了每篇文章的標簽。這么多次查詢讀取想想都覺得有點可怕吧?有木有?
在 PHP 中有一個很妙的函數,叫做 flush(),該函數將當前為止程序的所有輸出發送到用戶的瀏覽器。詳細參考這篇資料:http://cn.php.net/flush
那就添加一下這個好用的函數,你看:
<?php if (have_posts()) : while (have_posts()) : the_post(); ob_flush(); ?>
// insert code here
<?php flush(); endwhile; else : endif; ?>
這樣一來,如果你的網速很慢,可以明顯看到頁面一部分一部分輸出的過程,一定程度上算是緩解了頁面生成過慢的問題。
當然,如果你不覺得蛋疼,還可以給標簽列表輸出啊,什么什么的都加上這函數。是的,就是這樣。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈