NoGoodの日記: [かみしゅ!]機能概要を真面目に書こう 4
※このエントリの記述内容の最新版はこちらに移動しました。※
「かみしゅ!」は、日記エントリの最新 Top30 を、古い日記から新しい日記へ、順に読んでいくための wrapper です。
特にフルブラウザ機能を持った携帯からの閲覧を主眼にしており、以下のような特徴があります。
-
- 軽量化
- 日記エントリ本文以外の装飾タグや管理コメントタグ部分をなるべく排除した「日記エントリ表現のためのデータ送出」に限定しており、データ送出量の大幅な削減と、データ量の削減による通信の高速化、描画の軽快化を実現しております。
-
- 再現性の維持
- ソースを簡単に解析して必要な部分のみを残すようにしてあるため、ユーザの書いた日記エントリそのものには手を加えていない、という点も特徴です。
# 従ってユーザが書いた日記エントリの内容を忠実に再現しますので、</ul> タグや </blockquote> タグ等、必須の閉じタグ忘れ時には忠実に表示が乱れます ;-p
# 直接 slashdot.jp を参照した場合はスラッシュコードの送出するタグで閉じタグ忘れによる表示乱れがエントリ単位で相殺されるようになっています
-
- 操作の簡略化
- 左上に残り未読日記数が次の日記へのリンクとして表示される構造になっています。
このリンクは、携帯用ブラウザでは大抵の場合自動的にフォーカスされる位置にあるため、特にスクロールする必要なく日記を読み終えた場合や、興味のない日記の場合にはワンクリックしていくだけで順に日記を読んでいくことができる構造になっています。
従って、直接 slashdot.jp を参照した場合の Top30 に戻って次の日記を見る、という繰り返し操作が必要が無くなり、簡便かつ単純な操作で日記間のスムーズな移動が可能になっています。また、文字化けなどの表示乱れに対処するため現在表示している日記を再表示するリロードのための“Reload”というリンクが用意してあります。
なお、Top30 に戻って次の日記を見る、という繰り返し操作が本来不要なデータ送信量増加を招いていたため、こちらの構造もデータ送出量の低減に貢献しています。
-
- コメントの表示
- 日記の表示とほぼ同様の構造で、日記についたコメントも簡略化かつコメント内容を保持した状態で表示されます。
また、コメント表示から元の日記へ戻る“戻”リンクと、元の日記の次の日記へ進む“次”というリンクを用意してあります。
-
- 表示させる日記エントリ数の制限
- 標準の状態ですと、最新のエントリから 25 個分のエントリが表示されますが、指定されたエントリ数までで表示を止めるようにできます。
日記を表示させると、ページの一番最後に「表示するエントリ数を[25]個に[変更]」という表示が出ているハズです。
この[25]という部分は 1~25 の値から一つを選択することができ、[変更]というボタンを押すことで設定されます。
設定されると、表示していた日記が選択した数のエントリまで再表示されます。
以後、再度設定するまで、全ての日記で選択した数のエントリだけを表示するようになります。また、URL を直接入力して指定する方法も可能にしてあります。
具体的には、一度だけ http://chibi.chobi.net/~nogood/kamish/index.php?l=5 と入力していただきます。
すると、以後は Cookie で保持されるので ?l=5 の部分が記述不要になり、http://chibi.chobi.net/~nogood/kamish/index.php なり http://chibi.chobi.net/~nogood/kamish/ なりでアクセスしていただくだけで、表示エントリ数は 5 に制限されます。なお、受け入れる値は 1~25 で、変な値を入れると、まず Cookie で保持している値が参照され、これも無いか、変な値だと 25 に設定されてしまいますので要注意です。
# あくまでも form が使えない場合の救済措置としての入力方法です。可能であれば form を使用して設定して下さい。エントリ表示を制限することで、動作を高速・軽快化させると同時にデータ転送量を削減させるという恩恵もあります。
-
- Cookie によるセッション管理
- 以下の各項目をセッション管理情報として Cookie により保持します。
- users:
- Top30 から得たユーザのリストが格納されており、Top30 を参照することなく次のユーザの日記を表示するために用います
より詳細な説明としては、最後に取得した Top30 の内、下の last と比較することで既読分を除外した日記のユーザ nick を rawurldecode() したリスト(正確には配列の要素をタブで連結した文字列)となります
-
- limit:
- 日記を表示する際、最新のエントリからいくつ目のエントリまでを表示するかが格納されています
-
- point:
- 上のユーザリストのどの位置の日記までが既読なのかを示した数値が格納されています
より詳細な説明としては、ユーザリスト配列の添字に相当する内容で、日記閲覧を中断した後再開する場合や、コメント表示から日記表示に戻る場合に用います
-
- last:
- 最後に取得した Top30 の内、最新の日記のエントリ時間(unixtime)で、全てのユーザリストを表示し終え再度 Top30 を取得する際に、既読分を再び読み込まないよう除外するために用います
携帯に主眼を置くなら。 (スコア:1)
Re:携帯に主眼を置くなら。 (スコア:1)
この点については記述をより実際に即した内容に修正します。
御指摘ありがとうございました。
蛇足ですが、ユーザの書いた日記エントリ中のタグの量はたかがしれていて、スラッシュコードの吐く装飾タグや管理用のコメントタグの量の方が膨大なのです(ライトモードでも)。
また、専用のコード無しで Top30 の日記を順番に見ようとすると、ある日記を見て、Top30 に戻って、別な日記を見て、また Top30 に戻って、さらに別な日記を見て…と Top30 との往復(しかも短時間内での処理なので Top30 はほとんど更新されない固定的なページになっている)が無駄なデータ量を増やしています(少なくとも昔のスラッシュコードはこのへんの操作に関してはうまくキャッシュにのらなかったので)。
こちらもユーザの書くタグと比較してデータ量が膨大です。
データ量を削減するといっても、ユーザの書いたコンテンツには極力手を入れないほうが直接スラッシュドットを見に行くときと同じ視覚表現が得られるので、なるべくタグは削除しない方針です。
というわけで、携帯からの閲覧時に不要なものはユーザコンテンツを除き削れるだけ削っている、というのが実情かな、と思っていますので、フルブラウザでない携帯から閲覧してもメリットは大きいのではないかとは思っています(ユーザの書いたタグがどう影響するのか計り知れないので、推奨はしませんが)。
mobile ID portable_NoGood [slashdot.jp] 併用中
Re:携帯に主眼を置くなら。 (スコア:1)
ちなみにi-modeとかで見ると、CSSは全く反映されないので、酷いものです(T-T
※ああ、早くW-ZERO3が欲しい。
フルブラウザでない携帯でのアクセスは、下手にタグを使わないことが、機種別互換も取れやすいので、昔ソレで逃げたことがあります(汗
パケホのWILLCOMはステキですが、やはりパケホが無い状態では厳しいですね。
ヘッドラインや強調点(Bタグ等)を抜き出して―とか考えると面白そう。
※すみません、駄文ですw
Re:携帯に主眼を置くなら。 (スコア:1)
後はユーザの書けるタグがどう解釈されるか、ですねぇ実は 20 万パケットまで無料、というパケコミネット [willcom-inc.com]契約なので、日記読み続けても 20 万パケットを超えないスクリプトを書こう!というのが最初の動機だったりします(^^;
mobile ID portable_NoGood [slashdot.jp] 併用中