2006年5月6日追記 §
このプログラムのソースコードと、それについての解説は、間もなく発売される書籍「実例で学ぶ! [入門と実践] Ajax+XML」に収録されます。このページの最下部に、この書籍の情報を追加しておきます。ちなみに、このプログラムとは別に、ASP.NETを使わないXML版と、JSON版もこの書籍には収録されていてお買い得です。
前口上 §
ふう。
やっと公開にこぎ着けました。
私の最初のAjaxによるプログラムです。
一晩ででっちあげて公開する予定が、長い道のりでした。
ちなみに、技術のテストのためのプログラムなので、プログラムとして万全ではありません。
実現したポイント §
- もちろん、Ajaxである
- サーバから細切れのデータを必要に応じて非同期に取得する構造にする
- Internet Explorer 6.0, Firefox 1.0.7, Opera 8.5で動作させる
- イエローフェードさせる
- 任意のページでBookmarkできる (途中のページを記録でき、他人に伝えられる)
- ローディングを示すインジケータを付ける
- 矢印キーによるページめくりを行う
- 矢印キーをページめくりに明け渡すために、常に本文をウィンドウ内に収めるよう文字サイズを調整する
ちなみに、サーバ側はC#によるASP.NETで、XML形式でデータを送信しています。
既知のバグ §
- 極端にウィンドウを小さくすると、スクリプトエラーになります
- (2005/11/02 22:50頃追記) 一部Webブラウザではレイアウトが狂います
なぜ時間が掛かったのか §
雑用が多かったということもありますが。
それ以上に、JavaScript等の技術に関する知識の不足と、ブラウザ間の動作の非互換性に取られた時間が大きかったと思います。予想以上に、ブラウザ間で動作は食い違っています。
でも面白い! §
ブラウザ間での動作の食い違いも含めて、面白いと思います。
取り組んでいて楽しいと思います。
もっと取り組んでみたいと思いました。
(2005年11月1日17時40分頃追記)Version 0.02について §
以下の修正を行いました。
- Netscape 7で本文が表示されない問題を解消 (ただし厳密には不完全)
- CSSの3桁の色指定を6桁に直す
- 解説ページ(ここ)へのリンクを追加する
また、Netscape 8.0.4 [Gecko/IE]でも動作確認を行いました。
(2005年11月2日22時50分頃追記)Version 0.03について §
一時公開されていたVersion 0.03は、エラー発生時の情報を増やしただけで、機能に変化はありません。
(2005年11月2日22時50分頃追記)Version 0.04について §
Safari 2で動作するようにしました。
ただし、以下の2点の制約が残ります
- 現在見ているページをBookmarkできません
- レイアウトが狂っています
また、meta要素でchatsetを明示するように変更しました。
(2005年11月8日14時40分頃追記)Version 0.05について §
Internet Explorer 6.0, Firefox 1.0.7, Opera 8.5, Safari 2.0.2, Konqueror 3.4.1 (KNOPPIX 4.0で使用)で動作するようにしました。
レイアウトは、CSS1Compatモードを使う等の修正で良くなっているはずです。
PageDownが効かない問題を解消しました。
使い方の説明は、Konquerorの問題を回避するためにHTMLによる独立ページにしました。
ただし、以下の1点の制約が残ります
- Safariでは現在見ているページをBookmarkできません (仕様。改善の見込みは今のところ無し)
(2006年1月9日14時45分頃追記)Version 0.06について §
書籍掲載版です。(どのような書籍かは近い将来アナウンスできるでしょう)
小説ファイルのパスをappSettingsから読み込むようにしました。リコンパイルせず、ファイルの位置をカスタマイズできます。
また、ソースコード上で書籍で解説していない書式を直しました。
ちなみに、バージョン表記に「ASP.NET版」という表現が追加されていますが、この他に書籍にはXML版(=ASP.NET抜きで静的なXML文書を扱う)と、JSON版が収録されます。同等のプログラムが、3つの方法で実現されているのを比較して見ることができます。
乞うご期待です。