プロが教える店舗&オフィスのセキュリティ対策術

ご教示お願い致します。

/test/log.txt

の最終更新日時を取得し、
その日時にページを更新させるようにしたいのですが、
どのようにするのでしょうか?

例)
ユーザーAさんがページ閲覧中

ユーザーBさんが掲示版に書込

log.txtの最終更新日時が変更

ユーザーAさんが閲覧中でもページ更新

これを実行したいのですが、どのようにするのかわかりません・・・

リアルタイムなチャットシステムを作成している最中なのですが、
WebSocketやSocket.i.oなどといったことは、
調べているのですが、うまいこと作動しません;;


なので、妥協策として
index.html
に書込フォームがあり、
内容は<iframe>にて、chat.cgiを開くようにして、
ユーザーAが入力途中でも消えないよう、
しています

これで、表示部分、書込部分はごまかせるのですが、
リアルタイムな部分で、手詰まりな状態です。

なので、上記のように
書込 (クライアント)

日時取得 (サーバー)

その日時でのページ更新 (サーバー?)

というふうに擬似的ではありますが、
このようなことを実行したいです。
どうかお力添えをお願い致します。

※とりあえず、これができてからもっと勉強して
WebSocketやSocket.i.oには切り替える
予定ではあります。。。

A 回答 (5件)

> ここで、そのlog.txtの更新日時を表示された後、


> そこから、その時間での、ページ更新という風につながるのでしょうか・・・?

仮にlog.txtの更新日時が取れるようになれば、
前回の更新日時をcookieなどに保存しておき、それと比べて
新しい更新日時であればlog.txtを再読込すればいいでしょう。

まぁ更新日時みないで、単純に常にlog.txtの内容で上書き更新しても
いいような気がしますが?

処理的には
・setIntervalで定期的にデータを取りに行く
・環境が許せばロングポーリングで処理する
のどちらか、場合によってはピギーバックという処理もあります

手っ取り早く試せるのはsetIntervalです。
この中でajaxでとってきたデータをつかって
チャット会話画面のテキストを更新していけばよいかと
    • good
    • 0

> なにも変化しないです・・



コンソールの使い方はわかりますか?
ご使用のブラウザの種類にもよりますがF12を教えて
開発ツール画面を表示した上でボタンを押すと
console.logで指定した文字が表示されます。
    • good
    • 0
この回答へのお礼

開発ツールは表示したことしかないですね・・・

色々見てみたのですが、ボタンをクリックで
動いているとこは、コンソールのとこで
ナビゲーションが発生しました。
ファイル:test.html

ただ、まだ見えないのですが、
ここで、そのlog.txtの更新日時を表示された後、
そこから、その時間での、ページ更新という風につながるのでしょうか・・・?

お礼日時:2017/10/26 15:26

あっと、わたし個人のデバッグ用ファイルの記述をそのままかいちゃいました


"y.php"→”/test/log.txt"と読み替えて下さい

jqueryのsrcについては省略されるのはこのサイトの特徴なのでうまく
ただしい文字を補完してください(ご指摘されているとおりで問題ないと思います)
    • good
    • 0
この回答へのお礼

替えてみて、checkを押しましたが、
なにも変化しないです・・

お礼日時:2017/10/26 14:53

たとえばこんな感じ



<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12 …
<script>
$(function(){
$('#check').on('click',function(){
$.get("y.php",function(data,opt,xhr){
console.log(xhr.getResponseHeader("Date"));
console.log("----------");
console.log(xhr.getAllResponseHeaders());
});
});
});
</script>
<input type="button" value="check" id="check">
    • good
    • 0
この回答へのお礼

y.phpは取得したいファイル名ですか?
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12
これは一部切れてるのを
.4/jquery.min.js">足しました

xhr.getAllResponseHeaders()
のxhrを参照する方法がわかりません・・・

お礼日時:2017/10/26 14:39

/test/log.txtの最終更新日時とは、ファイル自体のmtimeを見たいのでしょうか?


それとも単にlog.txtの中に文字列として最終更新日時が書き込まれているのでしょうか?

ajaxなどであれば送信成功時にxhrを参照して
xhr.getAllResponseHeaders()
などで更新を拾うことはできそうですが・・
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。

ファイル自体の更新日時を見たいです。

具体的にどのようにするのでしょうか・・・?

お礼日時:2017/10/26 12:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!