之前就隐隐约约怀疑自己Server端Resize图片的function可能会有Performance Hit…昨天用Firebug看了一下居然在没有Cache的情况下每次Reload要7秒钟Page才开始Render, 之前都一直在等待Server的Response…被惊到了…原来用的getimagesize();
的php function要把图片先下载到server然后才能判断大小, 期间会Block所有Render…所以就在那里活活的wait了7秒钟了…
开始想用JS来做客户端的Resize, 看了一会会jQuery, 决定第二天再写…后来突然想到其实可以直接把图片的大小存在Server端的post-meta…反正要Resize的只有post-image这一张图片…这样每个帖子第一次访问的时候server会访问一下图片, 把大小存下来, 之后其他人的访问就可以直接从数据库读大小, 就是秒间的事了…
改了两分钟搞定, 等待Server response的时间从7秒降到了0.7秒…
改完的代码如下:
(link)
No comments:
Post a Comment