title_parttitle_parttitle_part
静岡県浜松市であれこれソフトを開発している A.K.I Software のブログです。日々の開発日記やサーバー・セキュリティ関連の話題なども掲載。
<< 2024/04 >>123456789101112131415161718192021222324252627282930
《《《 ネットワーク機器の購入は Amazon で! 》》》
Powered by BLOM HTMLレンダラー 構造解析
小さくも大きくも閉じたりもしません
07/11/30 05:41 / ブラウザ

先日のバージョンから全面的に作り直していたりします。
前のバージョンはHTMLをシーケンシャルに読み込んで処理を行っていましたが、どうにも画像やレイアウト関連(Wordwrapやセンタリング)にムリがあります。
特にレンダリング速度が余りにも遅いので、以下のように処理を変更しました。
1)HTMLの構文を解析する。
基本処理です、タグとそれ以外に分離したりしています。

2)1の結果を構造化する。
実際に表示されるのはテキストや画像ですが、その前後のタグにより位置が変わったりと様々な処理が行われます。
シーケンシャルに処理をしていたのではムリがありますのでこれを構造化しておきます。
span タグの中にあるテキストとか、align で位置指定がされているとかです。

3)レンダリング用に構造を計算&最適化する。
前のバージョンはレンダリング速度が非常に遅く(平均300ms)フォームのサイズを変更したりすると使い物にならなかったので、レンダリング専用の処理を追加しました。
この処理で各オブジェクトの位置情報やサイズ等を計算しておきます。一番面倒な処理です。

4)実際にレンダリングする。
3の結果を使ってレンダリングします。基本的に計算は全て終わっていますので、それに従って出力していくだけです。

4パスで処理をするようになっていますが、設計書もなにもなくいきなりコーディングしていますのでハードなコーディングになっています。やれやれです。

ここでOSに依存するのは4だけになりましたので、他のプラットフォームへの移植も簡単になると思います。やりませんが。

[更新日付:2007/11/30 05:41:41]
トラックバックを見る(0)
Log Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+sl+e8d8c94d2c47387d7f008393efebe06cb638a0b7]
TB Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+tb+e8d8c94d2c47387d7f008393efebe06cb638a0b7]

記事へのコメント

コメントはありません

名前
コメントキー
 
コメントする時はキーを正確に入力して下さい
コメント
アドレスを含んだコメントはできません
© 2008-10 A.K.I Software all rights reserved.