何年にもわたって初めてコミュニティに質問を投稿しています。私はこれまで数年前からPHP/SQLで作業していましたが、この間はJavaScriptを扱う必要はありませんでした。イベントストリームのJavaScriptリーダーがページを更新する方法を教えてください。
多分私はこの問題を解決せずにすべてを試したので、私はいくつかの助けを私に提供することができます。
以下のスクリプトは現在、PHP対応のWebサイトで正しく動作しています。私はアプリエンジンによって更新されたファイルシステム上のテキストファイルからdyntasks.phpによって読み取ら更新版を掲載していますイベントストリーム
?><script type="text/javascript">
if(typeof(EventSource)!=="undefined") {
var eSource = new EventSource("dyntasks.php");
eSource.onmessage = function(event, previous) {
//if ((previous !== event.data)) {location.reload(true);};
document.getElementById("serverData").innerHTML = event.data;
};
} else { document.getElementById("serverData").innerHTML="Whoops! Your browser doesn't receive server-sent events."; }
</script><?php
でスクリプトがページ上のブロックを更新し、それが正常に動作しています。
ブロックは、このフォーム内のテキスト表示されます。
2017-03-21 16:08:15: task 21624 completed
2017-03-21 16:11:08: task 21627 completed
2017-03-21 16:36:01: task 21629 completed
2017-03-21 17:52:08: task 21635 completed
updating...
を今私は、特定のタスクidが完了したときに、ページ全体を更新する必要があります。 "taskid"はすでに変数に格納されており、クエリ文字列でも利用できます。
私はJavaScriptコードを更新するために、20時間などのために試みたが、私はそれがそのような方法でそれを配置することができなかっ/index.php?id=taskmanager &フルページ= 21624
それはあなたには、いくつかのヒントを私に提供してくださいでき
location.reload(真)
を誘発することができますか?私は、関数の前に更新をトリガーするためにグローバル変数にevent.data変数を保存する方法を知る必要があると思うが、これ以上のアドバイスは感謝されます。
使用window.location.reloadを(); –