No.08 基本動作概念
04 Cookieへ記録される情報
 
 本I−HTMLにおいて、制御することの出来る最大レイヤー数は50枚としました。 後に説明する手法を用いれば理論上は数百以上のレイヤーを制御することも可能ですが、現状のPCの処理能力や、書き込みルーチンで一度に動作する作業量を軽減するため、ここではあえて、50枚という枚数に限定しています。

 さて、Cookieへは、ブラウザの仕様上、最大のデータ格納量は1ドメインあたり20個、1データあたりの最大情報量は4Kbと決められています。このため、複数レイヤーを効率よく制御するため、本システムでは下記のように情報を記録する手法を取っています。

各種情報の記録  (個々の数値は例)
 格納識別子「LAY0 〜 LAY9」

 /0_100_200_1_-1_-1_-1/1_110_230_1_-1_-1_-1/... -1EOF

 /レイヤー番号_X座標_Y座標_表示状態_未使用_未使用_未使用/ ... EOF


 格納識別子「zINDEX」

 _1_2_4_0_7_5 ... _6EOF

 _0番目レイヤーのzINDEX_1番目レイヤーのzINDEX ... EOF


 格納識別子「LAYNUM」

 6_6

レイヤーの合計数_レイヤーの最終番号


 格納識別子「LAYTTL」

 15

レイヤーの配列番号の合計数

 
記録仕様
 レイヤーX座標 Y座標

    「−999〜9999」 実際の座標情報
    「−1」 未登録
    「EOF」 Cookie終端


 レイヤー表示状態

    「0」 非表示
    「1」 表示
    「−1」 未登録
    「EOF」 Cookie終端


 zINDEX情報

    「0〜49」 重なり順
    「−1」 未登録
    「EOF」 Cookie終端

「LAY0〜LAY9」
 レイヤーの情報を記録するCookieは、上2段の「LAY0〜LAY9」「zINDEX」です。
 レイヤーの配置情報は、1つのクッキーに対して5つ記録されます。実際に記録されるデータの表示例を示すと、

/0_86_156_1_-1_-1_-1/1_592_486_1_-1_-1_-1/2_358_222_1_-1_-1_-1/3_100_340_1_-1_-1_-1/4_324_396_1_-1_-1_-1EOF

 といった形になっています。 情報は、レイヤーの識別番号前は「/」で区切られ、個々のステータス情報は「_」で区切られていますので、この識別判定子を元にして、読み込み時に個々の情報を切り出して用いることが出来る訳です。
 尚、後ろの「−1_−1_−1」は、現状システムにおいては未使用の部分で、今後、拡張命令を追加した場合に備えてのCookie情報互換性を保持するために記録されているものです。
 さらに本Cookie情報は、読み取り時の煩雑さを少しでも軽減するため、値の読み出しは最大4桁までに固定してあります。4桁以上、つまり「10000」以上の値がX座表、もしくはY座標に代入された場合、値は「9999」として保存されます。 最も、9999以上のレイヤー位置へ配置することはありえないと思いますが、スクリプト的には可能ですので。

「zINDEX」
 レイヤーの情報のうち、zINDEXの値、すなわち重なり判定の記録部分に関しては、独立してひとつのクッキーとして記録する手法を取っています。 これは、5枚以上のレイヤーをまたいで数値が変更される可能性のある情報はzINDEX値だけであり、他の情報を同時に記録する必要性が無い事と、クライアントPCへの負荷を出来る限り軽減することが目的です。
 つまり、例えばユーザーが「レイヤー6番」を操作した場合、Cookieへは、「LAY1」への数値情報記録と、「zINDEX」への表示判定位置の記録が行われるということになる訳です。

「LAYNUM」 / 「LAYTTL」
 識別子「LAYNUM」と「LAYTTL」の2つは、DHTMLシステム起動時に照合と読み込みが行われるCookieです。 この二つは、主に製作者側が、ページの更新などでレイヤーを削除したり追加した場合を判定するために記録されています。 LAYNUMは、レイヤーの合計枚数が記録され、LAYTTLは、レイヤーの配列番号の合計が記録されています。 この2つを照合することで、数学的に100%、レイヤーの改変をチェックすることが可能となる訳です。
 例えば、製作者の作成したレイヤーが「0」「1」「3」 出会った場合、LAYNUMは「3」、LAYTTLは「4」となります。 この後、製作者が「0」「1」「2」のレイヤーに変更した場合、LAYNUMは「3」で変わらないですが、LAYTTLは「3」となるため、ユーザーがレイヤーを改変したことを判定することが可能となります。

 レイヤーを50枚作成した場合の最大Cookie記録数は「13」であり、Cookieの最大記録数「20」を下回っているため、データの記録上は問題ありません。

ページの最上段へ移動します