
10秒ごとにページ全体を更新かけるチャットのようなCGIで、
F5ボタンを連打して更新された際に、
プログラム側で「F5更新されている」ことを検知して、
「F5連打しないで下さい」的なページを表示したいと思っています。
クッキーを使ってどうにか制御しようとしたのですが、
うまく検知する方法が思いつきません。
ページが更新されたときに、データベース上に持っている
更新回数の情報を+1加算しているのですが、
それを使ってどうにかF5検知しようとしたのですが、
F5を押された場合と10秒ごとの更新である場合の区別を
どうつけるのか思い浮かびません。
更新された時間を覚えておき、次に更新された時間が
10秒以内であればF5を押した、という判断以外には
なにかないでしょうか?
(データベースに新しい情報を書き込んだりするのは
サーバーに負担がかかるので、できればやりたくないです)
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
サーバかクライアントに数値のデータを持つしかありません。
クライアントの場合は時間を送ってこないとエラーにして、時間が10秒以内ならばエラーになると言うもの。
最初の数字をどのように発行するかがポイントでしょう。
HTMLを10秒毎に書き出しするほうがいいかもしれません。
厳密にやるのならばサーバに何かしらのデータを保存しておかないと無理でしょう。
サーバに負荷がかかるのが嫌ならばそのスクリプトの基本的な動作を見直すべきでしょう。
No.1
- 回答日時:
質問者様はサーバとクライアントをきちんと認識すべきです。
「F5を押す」と言うのはクライアントサイドの挙動です。クライアントはそれを受けてサーバ側にhttpクエリを送信します。
サーバ側はその「来たクエリを解釈している」に過ぎません。
ゆえ、結論を言えば「CGI側から何を押されたかなんて分かるはずが無い」
F5だろうがリンク押下だろうがクエリ直叩きだろうが、明示的にその記述が無い限りサーバ側でそれを検出することは出来ません。
>(snip)以外には
>なにかないでしょうか?
少なくとも当方は知りません。
クライアント側をjavascriptでギチギチに固めるくらいでしょう。
エンドユーザがどう思うかは知りませんが。
>(データベースに新しい情報を書き込んだりするのは
> サーバーに負担がかかるので、できればやりたくないです)
認識がおかしいです。
10秒に一回requestを送る方が何百倍もサーバに負荷をかけていることでしょう。
// 正確にはそこに至るまでのルートですが
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelで、別シートへ情報を参照表示する関数について。 2 2023/06/26 09:58
- Visual Basic(VBA) VBAで重複データを確認したい 5 2022/10/07 16:24
- Excel(エクセル) エクセルの数式で教えてください。 2 2022/10/25 17:10
- Windows 10 このWindowsUpdateの失敗メッセージは何を物語るか? 5 2023/07/17 11:49
- Visual Basic(VBA) VBAで一時中断したプログラムの再開をさせたい 1 2022/11/13 11:15
- ホームページ作成・プログラミング メールフォームで送信すると「通信に失敗しました。ページの再読み込みを...」で送信できません。 2 2023/05/26 18:11
- その他(IT・Webサービス) 無料ドメイン無料サーバでHP作りたい。 知り合いの飲食店のHPを作ってあげたいのですが、その店主には 3 2022/06/05 01:22
- ノートパソコン パソコンでスクリーンショット、音量調整、明るさ調整ができなくなりました。 Windows10です。2 1 2022/11/29 22:06
- ハッキング・フィッシング詐欺 アマゾンを語るメールがまた来た 5 2023/05/11 18:56
- Excel(エクセル) エクセルの数式で教えてください。 4 2023/06/27 09:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPとPostgresとEclipseについて
-
LAN内に接続されているPCをリ...
-
CGIのデバックは、どうすれ...
-
ダヴィンチカート2のアップロ...
-
TwitterAPIを使用せずに自動ツ...
-
perl PHP C++ それぞれのメ...
-
ローカルマシンでCGIソースが出...
-
VBAを使用して、外部サーバのフ...
-
「EJBとServletの違い」「J2SE...
-
CGIの動作確認方法について
-
opencvのコード、エラー発生
-
フリーアクセス解析を紹介して...
-
ASPでDLLの使用方法
-
EXCELファイルに誰がアクセスし...
-
KENT WEB(昨日の続きです)
-
URLに~/cgi-bin/~を隠す方法
-
PostMail パーミッションについて
-
実行属性って?
-
cgi-binにアクセスするとforbid...
-
CGIと permissionの問題
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ソースを見せたくないです。
-
HTML文書の中で環境変数を使う...
-
「EJBとServletの違い」「J2SE...
-
コンパイルされたCGI(C言語)を...
-
ASPからJavaScriptへの受け渡し...
-
ASPでDLLの使用方法
-
TwitterAPIを使用せずに自動ツ...
-
VBAを使用して、外部サーバのフ...
-
perl PHP C++ それぞれのメ...
-
リダイレクト失敗時のエラー取...
-
リンク先を更新したら「New]等...
-
WEBサーバとDBサーバ
-
simplexml_load_fileのエラー
-
【緊急】セッション変数を別の...
-
mathtexの導入方法について。
-
自宅マシンでsendmailはできま...
-
CGIでF5連打されたときにガード...
-
SSIが表示されない環境について
-
フリーアクセス解析を紹介して...
-
PHP5のインストール その4
おすすめ情報