2009年6月17日 星期三

發現使用"繼續閱讀"的功能會讓ie6當機 (解決方法)

最近有些使用者說直接進我的首頁會當機 可是先瀏覽文章再進就不會

研究了一下發現是因為首頁使用了"繼續閱讀"的功能 造成某些情況下可能會有bug

"繼續閱讀"功能請參考這篇 幫blogger換了一個更好用的"繼續閱讀"

這個繼續閱讀的原理是透過javascript去拿rss用的summary回來當縮文概要

可是當首頁有相當數量的文章+網路速度又很順 會同時產生很多的javascript同時執行

已知ie6在這種情況下會當機 整個卡死 只能去工作管理員關掉ie重開

(ff ie8我測過都不會)

因此建議把程式碼其中

<script type='text/javascript'>
createSummaryPost<data:post.id/>(&quot;<data:post.id/>&quot;);
</script>


改成

<script type='text/javascript'>
function sleep(n)
{
var start=new Date().getTime();
while(true) if(new Date().getTime()-start>n) break;
}
sleep(200);
createSummaryPost<data:post.id/>('<data:post.id/>');

</script>

透過延遲讓javascript分散時間執行

造福一下那些還在用ie6的使用者 Q___Q