2008/4/30 水曜日 by kouichi
クロスブラウザでの動作確認をするために、
IE8(英語版Beta)、Firefox2.0、Safari3.1、Opera9.2をそれぞれ入れました。
なお、自分の環境はWindowsXPです。
まず、IE8は英語版がためか、Betaなためか、立ち上げるとエラーが連発して動作せず、結局IE7に差し戻しました。
IE8ではHTML 5.0がサポートされるらしいですが、どうもCanvasやVHTMLもBetaでは未実装とのことです。
今後また新しいVerがリリースされたらインストールしてみようと思います。
なお、IE7ではHTML 5.0がサポートされていないため、Canvasを動作させるためにexcanvas.jsというcanvasのエミュレータを用いています。
そのためmemonoでは一部の機能が使えませんが、今後検討していこうと思います。
Firefoxはメインで使っているためか、jsやcssが一番思ったように動作します。
Safariは入れてみて驚いたのですが、jsの動作、画像描画、cssの解釈は早いようです。
少なくともmemonoのTOP画面が一番素敵に動作するのはSafariでした。
OperaはHTML、css解釈は一番早いように思いますが、js(特にDOM操作)はいまいちです。
静的なページを見る分にはOperaは良いように感じます。
memonoではGWTを使って画面を作成していますが、細かい点で各ブラウザで相違が出る場合がありました。
とはいうものの、どちらかというとスタイル関連での相違で、jsの動作違いで悩むところはあまりありませんでした。
Posted in GWT | 1 Comment
2008/4/28 月曜日 by kouichi
Apache Commons HttpClient関連で自分のブログに到達している方が多いらしいので、Tipsを少々まとめておきます。
・タイムアウト
以前の記事をご参考に
・リダイレクト
リダイレクトする場合など、アクセスするURLと実際のURLが違う場合があります。
そちらの取得方法は
URI uri = method.getURI();
String url = uri.getEscapedURI();
このような感じです。
・エンコード
HttpMethodBase#getResponseCharSetにて取得可能ですが、Httpヘッダにセットされていないサイトなどではiso-8859になりますので、ここだけ見ていてはNGです。
やはり、HTMLのheadタグないのContent-Typeをパースするほうが無難です。
・HTMLコンテンツ
HttpMethodBase#getResponseBodyAsString()で文字列が取得可能です。
ただ、これもエンコードがHttpMethodBase#getResponseCharSetを見ているためサイトによっては文字化けしてしまいます。
Posted in Java | No Comments
2008/4/25 金曜日 by kouichi
最近Cometについての話題が出たので調べました。
こういうことなわけですが、HTTPのコネクションをはりっぱなしにして、擬似的にサーバからデータをPushする技術です。
こういうことを考える人は目の付け所がすごいですね。尊敬します。
実際はTomcat6でCometのエンジンが載っているので、実装自体は結構容易です。
こちらやこちらにサンプルがあるので、参考になると思います。
ただ、サンプルはホントにHTTPのStreamを開きっぱなしなのでmod_proxyを経由する場合に都合が悪く、Tomcatに直接アクセスするとOKですが、Apache経由だとレスポンスが表示されないという問題がありました。
プログラムとして改良するならば、Ajaxのリクエストをつなげておいて、そのレスポンスでチャットの文字列を返す、つなぎなおす、つなげる、返す、、、という方法が取れると思います。
ただ、この場合データを受け取ったときに一度コネクションが切れてしまうのでタイミングがクリティカルな場合には工夫が必要と思います。
どっちにしろタイムアウトのケアとかも考えないといけないので、そのあたりの作りは単純化できそうな気がします。
一応上記のサンプルソースとディプロイファイルをあげておきます。
comet.zip
Lingrを作った方のブログにも書いていましたが、チャットのレスポンスがストレスないなどサービスを使う側のメリット、サーバやネットワークリソースの軽減など作る側のメリット、知っているといろいろうまみがありそうです。
Posted in Java, Tomcat, サーバ関連 | No Comments