RomExやThreadEx、したらばBPのサーバーサイドのサービスを
Amazon EC2からGAE/J(Google App EngineのJava実行環境)に少し前に移行しました。
それからしばらくして気付いたのですが、
データがどこかでキャッシュされているらしく、取得先のデータが更新されても、
その最新データを取得できるようになるまでに時差がある事に気付きました。
Amazon EC2の時はhttpclientを使ってデータを取得していましたが、
GAE/Jではそれが使えないので、HttpURLConnectionを使ってデータを取得するように変更していました。
最初はそのせいなのかなと思い、setUseCaches(false)を設定して取得するように修正しましたが、
相変わらずキャッシュされてるっぽい少し古いデータが帰ってきます。
そこで、同じソースでローカルサーバやAmazon EC2でも動かしてみましたが、
それらでは常に最新データが返ってきます。
これでキャッシュされたデータが返ってくるのはGAE/Jだけと分かったので、
リクエストするURLの最後に「”?” + HHmmss(時分秒)」を付与してリクエストするように修正してみました。
そしたらやっと常に最新のデータがすぐに取得できるようになりました。
その辺の情報ってどこかにあるんですかね?
キャッシュするとかしないとか、するならどれくらいの時間なのかとか、
設定できるならその方がいいんですが。
まぁ、結果オーライです。
と言う事で、RomEx、ThreadEx、したらばBPのサーバーサイドサービスは最新データがすぐに取得出来るように更新しました。
と思っていたら、どうやらFlash Playerのバグらしいです。
対策方法を↓で見つけました。
・マウスホイールのイベントがFirefoxで2倍になる件
http://deko.junka.net/2009/02/firefox2.html
これは全てのアプリに適用しなければ・・・。
今しばらくお待ち下さい。
ちなみにMacのFlash Playerではマウスホイールでスクロール自体しないらしい(持っていないから検証できない)のですが、
それは一応対策済みです。
参照:http://www.riaservice.com/?p=117
しかし、スレッド表示欄に使用しているTextAreaではスクロールできないらしいです。(未確認情報)
ごめんなさい。
その代わりに[↑]キーと[↓]キーでスクロールするようにしてあるので、それで代用して頂ければと思います。
RomExとThreadExには、その内、したらばBPのように[一番上]、[一番下]、[更新]のそれぞれのボタンアイコンを付ける予定です。
気長にお待ち下さい。。。
だいぶ前に「RomEx」を利用しようとしたユーザから以下のような通信エラーが出て利用できないと教えて貰った事があります。
エラー内容:Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Status 200
(参照:http://pc11.2ch.net/test/read.cgi/php/1113294628/715)
その時は「ステータスコードが200なのに何でエラーなの?意味不明だなぁ。。。」と思っていました。
それに私の環境では再現出来なかった為、クライアント側の何らかの環境の問題だと思ってそのまま放置して(忘れて)いましたw
すみません。
そしたらなんと今日、同じエラーが出るクライアントをやっと発見出来ました。
と同時に、FXUGのフォーラムでも似た様な問題が最近話題に出ていた事を思い出したので、それを参考にサーバ側のBlazeDSの設定ファイルを修正してみました。
参考1:http://www.fxug.net/modules/xhnewbb/viewtopic.php?viewmode=flat&topic_id=3350&forum=16
参考2:http://www.reynacho.com/?p=152
修正内容:BlazeDSの設定ファイル(services-config.xml)にタグ「<add-no-cache-headers>false</add-no-cache-headers>」を追加。
同じIE6とかIE8でもこのエラーが出る場合と出ない場合があるようなので、IEのバージョン以外に設定やOSやそのバージョン、Flash Playerのバージョンなど、その他にも原因があるんでしょうね。
明日、エラーが出てたクライアントでもう一度試してみます。
追記:結果、エラーが出てたクライアントでエラーが出なくなったのを確認しました。
昨日はFxUG(Flex User Group)主催の勉強会「Flex 4 , FlashBuilder? 4 , Catalyst , **** , **** ついに現れた! ベータ祭り」に参加してきました。
こういったユーザ会にリアルで参加したのは初めてです。
まぁ、勉強会と言っても、講師の方々のお話を聞いていただけでしたけど。。。
内容はFlexの次期バージョン4とその周りの開発ツールの使い方などが主体でした。
次期バージョンでは、デザイナーはFlash Catalystを使い、開発者はFlash Builder(Flex Builderから名称変更)を使い、デザインとロジックを分けて協業するのが、より楽になるよとの事でした。
どちらかというと、Flash Catalystを使用したアニメーションやエフェクトなどのデザイナー向けの話が多かったように思います。
出来れば次は業務システム寄りの話なども聞いてみたいな。
ちなみにお土産にAdobeさんから発売されている音楽CDを頂きました。
GoogleさんがどこかのイベントでAndoroid携帯を参加者全員に配ったらしいので、AdobeさんもPDF携帯(w)じゃなくて、Flash Builderくれたりしないかな~と密かに期待してたんですが、当たり前のようにそんなのはありませんでした。
でもこれに懲りずまた是非参加してみたいなと思いました。
7/7(火)はAdobeさん公式の「Flash Catalyst / Flash Builder 4 ベータ公開イベント」も開催されるそうです。
ちなみに、私のFlex Builder 3は試用期間が切れてしまったので、現在はEclipse+Antでビルドしています。
それからその当日だったかな?
Adobeさんから、スマートフォンにFlash Player 10(LiteじゃなくてPCのと同じの)が載るよと発表がありました。
今現在は、LiteじゃないPlayerはPC以外ではPS3だけですかね?
早くどんどんプラットフォームを増やして欲しいな。
Adobeさん頑張って下さい。
Flex開発者としては、テレビやゲーム機、スマートフォン、携帯電話などで、Flexでビルドしたswfが動くようになるといいなぁと思っています。
だって、一個作れば同じので動くんでしょ?楽でいいよね~。
RomExとかをスマートフォンの小さい画面で動かしたらどうなっちゃうのか興味あります。
今、PS3にもFlash Player 9かなんかが載ってるんですよね?
誰か、RomEx動かしてみて欲しいな~。
そしてどんな具合か是非教えて下さい。