CGI-BBS > ホームページ記述言語 > その他 > どのページからでも共有できるグローバル変数を使いたい


カレッヂ
カレッヂ


質問者 田中  投稿日 10/15(火) 17:52:36
HTML + Javascript (+ CGI) で複数のページで使用可能な変数(グローバル変数の
ようなもの)を実現する一般的な方法はありますでしょうか?

方法として

(a)フレームを使って、<input>タグを使う。
(b)フォームを使って次のページにデータを引き渡していく。
(c)ページの切り替えを全てDHTMLでおこなう(ファイルは1つなので通常のJavascriptの
   変数を共有できる)。
(d)Cookieを使用する。
(e)各ページをCGIで作成し、サーバ側のテンポラリファイルを使って読み書きする。

の5つを考えましたが

(a)フレームはできれば使いたくありません(ブラウザがフレーム非対応の場合
   もあるので)。
(b)ソースがかなり煩雑になってしまいそう。
(c)クロスブラウザ対応にするのがなかなか難しそうです。
(d)何百件という大量のデータの場合Cookieに保存するのが良いものなのかどうか
   判断がつきません。それとCookieを有効にしていない場合などあるので一般的
   でないと思われます。
(e)テンポラリファイルを削除するタイミングが難しい。

この他に何か簡単な方法がありますでしょうか?
よろしくお願いいたします。

プロバイダ参照:
サーバのOS:UNIXサーバ
パソコンのOS:Win95系
エディタ:秀丸
FTPソフト:NextFTP
サーバ移転:していない
改造:(未選択)
CGI習熟度:(未選択)

回答者 まさ  [削除]  投稿日 10/16(水) 15:05:19
わたしならe)を選びますが。
これ以上の方法はないような気がします。

>テンポラリファイルを削除するタイミングが難しい。

とありますが、ファイルへのアクセスがなくなって一定時間経過したものを削除
すればいいと思います。

どのようなものを作ろうとしているのかわかりませんが、ちょっとしたデータなら
Cookieでもいいでしょうけど、膨大なデータはCookieでは扱えません。

一番簡単なのはCGIで、ファイルに読み書きするのが一番だと思います。


質問者 田中  [削除]  投稿日 10/16(水) 15:15:30
ありがとうございます。

別のMLにも投稿したところ、やはりCookie 又は(大容量の場合)データベース
といった回答を頂きました。

ファイルに落とす場合は、そうかファイル名に日付とか時刻を付けといて
一定時間たったらスケジュールなどで自動削除すれば良いのですね。
回答者 まさ  [削除]  投稿日 10/16(水) 15:34:41
>ファイルに落とす場合は、そうかファイル名に日付とか時刻を付けといて
>一定時間たったらスケジュールなどで自動削除すれば良いのですね。

わたしの場合はファイル名にプロセスID+時刻としていますが、それは何でもいいと
思います。重複しなければね。

ファイルの削除はスケジューラで消してもいいですがわたしはそうしていません。
UNIXにはcronと言うスケジューラーがありますのでそれを使ってもいいですがもっと
簡単な方法があります。

それはスクリプトが起動されると、一番最初にデータファイルをスキャンします。
それで現在の日付とファイルの最終アクセス日をファイルテスト演算子で見ます。
それが一定時間経っているものを削除します。

こうしておけばスクリプトが起動されるごとに全データファイルをスキャンしますの
で、絶えず一定時間以上のファイルは削除されます。

スクリプトが全く起動されなければ、当然時間が経過したファイルも残ります。
しかし次回起動されればそのファイルは消えます。

これでいけません?

上手く伝わったかどうか心配ですが。。。

質問者 田中  [削除]  投稿日 10/16(水) 15:45:44
伝わりました。

起動時にやればいいのですね。終了のタイミングは考えたのですが
終わり方は色々なので煩雑になりそうで考えるのやめました。

スケジューラなどを使うよりスマートですね。


返信(回答)する


Web裏技