Android 2.xでXMLHttpRequestの実装がおかしい気がする。long pollingしたいのにresponse未完了時でreadyState === 4になる(4系は正常)
2012-08-02 18:09:35Android2.xのXHRはサーバからのレスポンスが遅延してもonloadstart呼び出し続けてくれない(さっさとreadyState === 4になって以後発火なし)
2012-08-02 18:46:40今回はLong Polling出来ればいいから常にsetTimeoutでいける気がするけどPreLoader系には致命的なんじゃないか
2012-08-02 18:48:23幾つかPreLoader系のコード読んだけど特に対策は入れてないっぽいのでcontentlengthない場合だけの症状なのかな
2012-08-02 18:51:32あー、これキャッシュのせいか。URLにDate.nowつけたらonreadystatechangeが最後にちゃんと発火するようになった
2012-08-02 18:57:55Android2系はreadyState === 1で読み込みを開始して、読み込み完了後にreadyState === 2と3と4が同時に発行される気がするんだけどなぁ。。。
2012-08-02 19:17:28setInterval(log, 0)で確認してみたけど、readyStateが1~2の間だけ呼び出されてて2~4の間は呼び出されなかった
2012-08-02 19:21:17ざっくりまとめた(あとで自分で確認するようなので最小再現コードじゃない) // Android2系でXHRのLong Pollingができない問題の検証コード(ざっくり内容) — Gist http://t.co/omsCTzBJ
2012-08-03 10:47:35Android2.xはreadyState === 3が読み込み完了後にしか取れないし、読込中(readyState === 1)だとgetResponseHeaderやresponseTextも取れないからlong pollingできないっぽい
2012-08-02 19:54:01Android2系の問題はこれか // Issue 13044 - android - Android Browser does not correctly support XMLHttpRequest streaming - http://t.co/rivTGbBT
2012-08-15 12:59:25古いAndroidのデバッグとか最終的にはこれ使うのが最高だと悟った。もう最初からこれでいいかもしれない http://t.co/ogWWlOWU
2012-08-01 15:23:28