OperaはComet+JSONP出来ない
IEとCometの相性が悪いで書いた問題を回避するため,複数ドメインを使うことにした.
まぁ,この問題の他にも,同一ドメインには同時2本しか接続がはれないので,そのドメインで同時に1つしか閲覧されないという前提が無い限りは,複数ドメインにしておいた方が良いと言うこともあった.
複数ドメインに分けると,クロスドメインの制約があるためにAjaxが使えなくなる.
そこで,JSONPを使うわけだけども,ここでまた問題が...
OperaでJSONP+Cometすると,Cometの応答が返ってくるまで,すべてのJavaScriptが止まってしまう.
どうやら,scriptタグでスクリプトを読み込んでいる間は,JavaScriptの実行が止まってしまう模様.
仕方なく,Operaの場合はAjaxを使うようにして回避...
また,scriptタグを付け足す方式なので,エラーチェックが出来ないのも難点.
Ajaxではサーバとの接続が切れれば,すぐにエラーが返ってくるのに,
scriptタグの場合はタイムアウトを待つしかない.
この辺も不便.
うーん,結局AjaxでCometするにしても,JSONP+Cometするにしても色々めんどくさい.
チャットとかやりたい場合は,Flash+XMLSocketを使って通信して,
Flash / JavaScript Integration kitとか使ってJavaScript側に制御を渡すのが楽そう?
詳しくは見ていないけど,チャベリというサイトが
Flash+XMLSocket+JavaScriptでやっているぽい.
Recent Comments