ShootingStar 3.2.4 が IE で動かなかったけど動くようにした話

このエントリの作業は必要ないです!!!!ダマされるな!!!! Flash の新しいバージョンをインストールすれば大丈夫です!!!

ShootingStar 3.2.4 を使って comet な web アプリを書いてるのですが、IE でそのページを読みこむと、延々と裏で再接続をくりかえしてしまって、アプリケーションからの通知もうけとれないという状態になりました。FirefoxとかSafariだとちゃんと動く。

で、結論としては、こんな感じで。数値と何かを比較するところで、陽に数値に変換すればちゃんと動くようになりました。

=== vendor/plugins/meteor_strike/views/xhr.rhtml
==================================================================
--- vendor/plugins/meteor_strike/views/xhr.rhtml        (revision 14668)
+++ vendor/plugins/meteor_strike/views/xhr.rhtml        (local)
@@ -47,6 +47,8 @@
       ms.executionQueue = {};
       ms.executionCounter = 0;
       ms.evaluate = function(js, serialId){
+        serialId = parseInt(serialId);
+        serialId = isNaN(serialId) ? 0 : serialId;
         ms.executionQueue[serialId] = js;
         if(serialId == ms.executionCounter){
           while(js = ms.executionQueue[ms.executionCounter]){

serialIdの型は多分Stringなんだけど、最初のアクセスのときにFirefoxだと0が来てて、IEだと''が来てた。(それでもうまくいきそうな気がするけど……今はもう深追いしたくない。IEはじゃじゃ馬)

ShootingStarは簡単にcometが使えるカッチョいいライブラリなので、みんなもっと使うと良いと思う。

オマケ

ShootingStar: 3.2.3にアップデートしてみた…が
この人と同じ症状だったかも。非常に参考になった。

はじめはこの記事のとおりにやってみたんだけど、キューイングされないのはまずそうだなあと思って上の数値に直す変更を試したら、結果的に数値に直すだけで全部大丈夫でした、というのが本エントリ。


最新バージョンのサンプルがShootingStarの作者の元気さんのブログで記事になってるんだけど、
http://blog.s21g.com/articles/200
これだと IE でもちゃんと動くので、多分次のバージョンでは直されてるんだと思います。


comet Meteor shooting_star MeteorStrike meteor_strike Internet Explorer
SEO対策。ShootingStar関連はユーザが少ないのか、全然ひっかからないので……。でもこんなことしても効果無いかもしんないな。