iPhone4のsafariだけcanvasが激重い

突然だがHTML5canvasである。このあたくしが。

canvasでご機嫌にアニメーションを作ってぶりぶり遊んでいたのに、iPhone4だけ遅い。カクカク遅い。コ・マ・お・く・り・も・で・き・ま・す・よ、というドリフが出てたビデオデッキのCMを思い出すくらい遅い。これが分かる人は大体友達、それはともかくほんとにほんとに遅い。

なんなら先代iPod touchのが全然早い。さすがにPCよりはもたつくけど、少しスピードのパラメータに下駄履かせてやればなんとかなるくらい。iPhone 3G(Sじゃないのよ)なんかほぼPCと同じ早さだ。しかも3G+iOS4.0.1だ。なのでsafariの事情という訳でもないっぽい。iPadも余裕。

でもiPhone4 だけ遅い。

その遅さっぷりを見ててふと思い出した。

canvasのアニメーション、最初はtouchでも3Gでも遅くて、使えないなーとか思ってたら、metaタグでviewportのinitial-scale=1.0にしたらあっと云う間に解決したという事があって、つまりはsafariで拡大縮小するとcanvasの描画ってのはお荷物になるらしい。initial-scale=1.0にした後もちょっとピンチするともうダメ。重い。

なのでまあこんな感じで

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">

一件落着と相成った。

というあれこれがあって、もしかしてiPhone4のsafariってinitial-scale=1.0を指定しても勝手に拡大してるんじゃないのか?と思い当たった。

他のより高解像度なので見た目ちっこくなる訳で、それまでviewportで最適化されたサイトの見た目が変わるのは宜しくないので、草履を温めておきました、うむういやつじゃ、とかなんとか気を回しまくった果てのこれなのではないか。

とここまで昨日思いついて今朝調べたら
http://journal.mycom.co.jp/articles/2010/07/23/css-for-iphone4-retina-display/index.html
だそうです。

CSSでサイズ指定かー。上手くいくのかなあ。