(現在 過去ログ9 を表示中)

HOME HELP 新着記事 トピック表示 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■15696 / inTopicNo.1)  Child Tree のツリー崩れについて
  
□投稿者/ maki -(2004/01/01(Thu) 17:31:58)
    はじめまして、りゅういち様、child tree を利用させていただいております。
    どこまで踏み込んで書いて良いものか、ここに書き込んでよいのかよくわかっておらず、
    失礼なこともあるかと思いますがご容赦ください。

    現在、過去記事 ■13625, ■13636 などと笹様が質問されていたのと同じ現象で悩んでおります。

    できれば、ツリーをメインで使いたいので、勝手ながら CGI のソースを解析させていただきました。

    [問題となるツリー表示]
    test1 / foo (04/01/01(Thu) 03:42) #1
    ├ test1-1 / foo (04/01/01(Thu) 03:43) #2
    └ test2 / foo (04/01/01(Thu) 03:43) #4
       └ test1-1-1 / foo (04/01/01(Thu) 03:43) #3

    [期待しているツリー表示]
    test1 / foo (04/01/01(Thu) 03:42) #1
    ├ test1-1 / foo (04/01/01(Thu) 03:43) #2
    │ └ test1-1-1 / foo (04/01/01(Thu) 03:43) #3
    └ test2 / foo (04/01/01(Thu) 03:43) #4

    [再現方法]
    (1) test1 を「新規作成」し「送信」する
    (2) test1 に対する「返信」test1-1 を「送信」する
    (3) test1 に対する「返信」test2 を書く
    (4) test1-1 に対する「返信」を 3. とは別に書き「送信」する
    (5) (3) で書いておいた「返信」を「送信」する

    [サンプル]
    http://team86.nest.jp/maki/cgi/cbbs/cbbs.cgi?H=T&no=0

    [CGIの動作]
    (ソースから読みとったのですが、まちがっていたらもうしわけありません)
    ・ツリーの順は記録ファイルを作成するときに決定される。
    (表示側の関数(one_)は、記録ファイルの内容を逆順に表示する)
    ・(3) で「返信」を準備するときに、返信記事を挿入する位置(=記事Xの後ろ)を計算する。
    ・(5) で「送信」するときに、(3) で計算した挿入位置を 'N' という名前のパラメタ
    として cbbs.cgi に渡す。(cbbs.cgi 586行目)
    ・記録ファイルを出力する関数(wri_)は、送信された記事を番号 'N' の後ろに挿入する。
    ('N' という名前のパラメタが渡されているときのみ)

    [問題が発生する原因]
    ・返信を書きはじめてから記事の送信が行なわれるまでの間にタイムラグがあるとき、
    新たな投稿によってツリーが更新され、挿入すべき位置が変わることがある。
    ・上の例では
    - (3) の段階では N=2
    - (4) が実行された段階で、挿入位置は N=3 (test1-1-1 の後ろ) となるべき
    - (5) では、(3) の計算結果が有効なので N=2 として test2 を「送信」する。
    - 関数 wri_ は、test2 を test1-1 (N=2) の後ろに挿入してしまう。

    [解決案]
    効率は悪くなると思いますが、関数 wri_ の中で、挿入位置を親記事の番号から
    再計算するようにするというのはいかがでしょうか?

引用返信 [メール受信/ON] 削除キー/
■15698 / inTopicNo.2)  Re[1]: Child Tree のツリー崩れについて
□投稿者/ りゅういち -(2004/01/01(Thu) 23:55:48)
http://www.cj-c.com/
    No15696に返信(makiさんの記事)
    > > できれば、ツリーをメインで使いたいので、勝手ながら CGI のソースを解析させていただきました。
    > > [解決案]
    > 効率は悪くなると思いますが、関数 wri_ の中で、挿入位置を親記事の番号から
    > 再計算するようにするというのはいかがでしょうか?

    この問題は既知のことですので、次回バージョンアップ時に修正予定です。
    (まぁ、予定なだけなので、いつかは未定なんですが(^^;)
    気になるようであれば、ツリー表示を切ってトピック表示でお使いになることを
    オススメします。
引用返信 [メール受信/OFF] 削除キー/
■15700 / inTopicNo.3)  Re[2]: Child Tree のツリー崩れについて
□投稿者/ maki -(2004/01/02(Fri) 00:35:06)
    修正予定に入ってるんですね。了解いたしました。
    次バージョンを心待ちにしています♪


解決済み!
引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新着記事 トピック表示 検索 過去ログ

- Child Tree -