Hatena::Groupsubtech

#生存戦略 、それは

-> 09 { 12 / 01 }

iPhone Safari での XHR/iframe のロードはどちらが速いか

18:15 | はてなブックマーク - iPhone Safari での XHR/iframe のロードはどちらが速いか - #生存戦略 、それは

  • 答え:特に iframe を使う理由が無ければ XHR をつかえ(約2.5倍速)

手元のページでやってみた。環境は3G + WiFi

  • XHR の readyState 4, status 200 になるまでと iframe の onload 発動まで
    • XHR 平均約700ms
    • iframe 平均約1800ms

また結果を XHR のほうは div.innerHTML = req.responsText 的な方法でノードツリー作成、iframe の場合は iframe.contentDocument を利用して、querySelector で必要なノードを取得、という場合

  • XHR(innerHTML) 約30ms
  • iframe 約50ms

とこちらも XHR の方が実機で速い。あと iframe は history.back にどんどん iframe でロードした副作用も発生してしまうので無難に XHR の方が良い。

ちなみに HT-03A(Android 1.6) のブラウザでは

  • XHR 約2000ms
  • iframe 2000ms-8000ms

とXHRのほうだと安定するがiframeのほうだと安定しない感じになった。むーん。

iframe を使った方が良い場合は、ロード先のデータの JS実行(document.write 等)をきちんと行った DOM ノードがとれるので、汎用的で速度が気にならないような場合は iframe にもメリットがある。

os0xos0x2009/12/02 19:31Chromeなら JSON.stringify('まるちばいと'); で!
stringifyをtypoしそうですけど…

os0xos0x2009/12/02 19:35書き忘れた><
コンソールではcopyも使えるので、クリップボードにコピーもOKです。
って、実はコンソールでなくても、JavaScriptからクリップボードにコピーする裏技っぽいのがあるので、あとでKeyconfigとかに実装しておきます。

secondlifesecondlife2009/12/02 20:23おーJSON.stringify での出力も!

chrome でのIEと同じ方法(セレクションからコピー)は将来的にセキュリティ関係で無くなりそうな気もしますね…。

トラックバック - http://subtech.g.hatena.ne.jp/secondlife/20091201