人気ブログランキング | 話題のタグを見る
ITコーディネータ 針生徹 の blog
宇宙語
おバカなウェブサーバーの所為で、ここ3日ほど無限ループに陥ってしまっていた。

ワシゃ SE であってプログラマじゃないんだし、基幹業務が専門で、ウェブアプリなんてほとんど素人なんだぜ。まぁ HTML や javascript ならなんとか書けるが、細かな制御をしようとするとセッションレスってのがどうにも困る。リッチクライアントたって、DB を丸ごと送る訳にはいかないしな。

項目数が多いんで、ページ全体を読み書きすると転送量制限に引っかかる。変更していない項目まで再送することになって実用にならないほど遅い。Iframe で分割し、多数の要求を同時に投げてみたらネットッワークの帯域が足りない。じゃぁってんで、入力された項目毎に非同期で通信する、流行の Ajax にしてみた。

手順自体はとても簡単だ。ブラウザが用意する XMLHTTP オブジェクトのメソッドを実行するだけ。URL を指定して open、ステータスが変わった(受信した)ときの処理を記述して send すれば OK。

ところが、これの戻り値でハマってしまった。Ajax の x は xml ってことで、DOM ツリーに対応したオブジェクトとして受け取れるってのが利点の筈だが、これがちゃんと返ってこない。CGI はウェブサーバーが用意する API を call するようになっているんだが、HTTP 応答ヘッダーの Content-Type をセットできないんだよな。汎用機の端末代わりだから、Windows PC への html 決め打ちのようで、Ajax など想定しておらんのだな。

ならば、responseText へ JSON を渡せばいいかと思ったら、今度は日本語が文字バケ。元ファイルに埋め込んで UTF-8 で保存した物はちゃんと返るが、CGI が動的に埋め込むコードは Shift_JIS にしかならないのだ。HTML にして charset を指定しても、受け取った段階でバケておる。これも、HTTP 応答ヘッダーの Content-Type に charset が書いてない為に判別不能で、UTF-8 として受信してしまうようだ。

しょうがないから、responseBody でバイナリで受け、VBS で文字へ変換して凌ぐことにした。全くスマートじゃないんだけどねぇ。

ウェブアプリ関連の情報はインターネット上にたくさんあるのは助かるが、その膨大な中から欲しい物を探し出し、読み、理解し、サンプルをテストし、自分のアプリに適用し、検証し、やっぱダメじゃん、振り出しへ戻る。これをやってると時間がいくらあっても足りませんな。

次々と出てくる色んな技術を組み合わせるとどんどんやれる事が増えていくような気がするもんだが、結局最後はどこかで「仕様です」って言われるんだから、あんまり欲張らずに枯れた技術の制限内で出来る事に留めておくべきなのかもしれないな。

宇宙語ばっかり増やしたってワシゃ喋れませんから。
by HarryBlog | 2006-08-23 01:52 | Work | ↑Top  
<< エキブロ不調 ページの先頭 夏バテ >>



針生 徹

Writer's choice
Harry corporation
Study room
Twitter
Facebook
Tumblr


エントリ内容に無関係と判断したコメント、トラックバックは削除します
記事ランキング
最新の記事
開会式
at 2015-01-31 17:53
針生一郎と戦後美術 - 宮城..
at 2015-01-18 17:22
回顧
at 2014-12-27 22:36
プライスレス
at 2014-01-03 07:31
謹賀新年
at 2014-01-02 09:20
蹴球興業
at 2013-09-21 22:27
スマートですかねぇ?
at 2013-08-07 21:42
遭難記録
at 2013-08-04 20:50
リバイバル
at 2013-08-04 11:06
出稼ぎ
at 2013-08-04 10:56
最新のトラックバック
カテゴリ
以前の記事
その他のジャンル
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31