このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

二重書き込みを防ぎたいのですが...

発言者:めぐみ
( Date Saturday, August 31, 1996 22:59:50 )


すみません、また質問させて下さい。
denngonnを改造してチャットの真似事をしようとしているのですが
自分が書き込んだ後に、相手の返事を読むのにReloadすると
同じ発言が二回書き込まれてしまいます。
とりあえずは元のcgiファイルにリンクを張って、ブラウザのReloadを
使わないでと言ってしのいでいますが
これをScriptの方でうまく処理できないものでしょうか?

田中求之 さんからのコメント
( Sunday, September 01, 1996 00:19:08 )

>これをScriptの方でうまく処理できないものでしょうか?

処理できます。

方法については改めて書き込みます。

ニャー助 さんからのコメント
( Monday, September 02, 1996 11:23:49 )

私もチャット作って遊んでいます。
(でも哀しいかな。マックだと(機種にもよるのでしょうが)
 今の所、5人が限界となっています。でも、かなり遊べます。)

もし、Scriptが欲しければ、以下までメール下さい。
(その際、”チャットのScript 希望”と明記して下さい)

もちろんどなたでも大歓迎です。

メールアドレス
zen@risun1.cyric.tohoku.ac.jp

田中求之 さんからのコメント
( Monday, September 02, 1996 18:17:06 )

>自分が書き込んだ後に、相手の返事を読むのにReloadすると
>同じ発言が二回書き込まれてしまいます。

これを防ぐ方法です。

oneLiner.acgi.txt のスクリプトに、1行だけ書き加えます。

具体的には、メッセージを書き込んでいる部分の最後に redirect の指示を追加します。
以下の !!! の部分を追加することになります。

====
    if http_search_args ュ "" then
      --- http_search_args にメッセージが収められていた場合は
      --- 書き込まれたメッセージを取り出して、ファイルに追記する
      --- http_search_args の場合は URL デコードの必要はない
      set AppleScript's text item delimiters to {"="}
      set myBody to (text items 2 through -1 of http_search_args) as string
      set AppleScript's text item delimiters to {""}
      
      appendToFile (myBody & "<br>" & return) to file bodyPath
      
      return redirect_header & "oneLiner.acgi" & crlf & crlf ---- !!!
      
    end if
===

これによって、書き込んだあとから Reload をかけても、2重の書き込みは起こらない
ようになります。

田中求之 さんからのコメント
( Monday, September 02, 1996 18:31:48 )

denngonn を改造してチャットのように使う場合、古いメッセージをうまく消して
いくというのがポイントになります。

これを簡単に行う方法は、ページを、ヘッダ部分、メッセージ部分、フッタ部分の
3つに分割し、メッセージ部分にデータを追加する際に、先頭の古いものを消して
から、新しいものを末尾に追加するというものです(メッセージ用のファイルを
すべて読み込んでおいてから、データの操作を行います)。

参考までに、denngonn (oneLiner) を改造したものを登録しておきます。
チャットというよりは「古いメッセージは消えていく伝言板」というものです
けどね。


→  EasyChat

めぐみ さんからのコメント
( Monday, September 02, 1996 21:54:09 )

ニャー助さんのスクリプトを改良しているうちに
田中さんからもお答え頂いていましたね。
お二人には大変感謝しています。
先日訊いたように新しい書き込みが上に来るようになってて、
だいぶチャットらしくなったと自分では思います。
もしよかったら覗いてみて下さい。(^^)


めぐみ さんからのコメント
( Tuesday, September 03, 1996 09:32:34 )

どうも大幅に手直しが必要みたいなので...
お手数ですが上の参考ページのリンクを削除して下さい。
よろしくお願いします。

こにし@ほくだい さんからのコメント
( Tuesday, September 03, 1996 13:26:03 )

あ、なんだかすみません。ご迷惑をおかけしたみたいで……。

田中求之 さんからのコメント
( Tuesday, September 03, 1996 22:05:13 )

>お手数ですが上の参考ページのリンクを削除して下さい。

明日の夕方にでも削除しておきます。
(気にすることはないとは思いますけど)

田中求之 さんからのコメント
( Wednesday, September 04, 1996 18:22:02 )

リンクを削除しておきました

めぐみ さんからのコメント
( Wednesday, September 04, 1996 22:11:08 )

どうもお手数をおかけしました。