这是多年来我第一次向任何社区发布问题。到目前为止,我一直在使用 PHP/SQL 多年,在此期间我从未需要处理 JavaScript。
因此,也许您可以为我提供一些帮助,因为我已经尝试了所有方法而没有解决此问题。
下面的脚本目前在 PHP 驱动的网站中正常工作。在事件流中,我发布了 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”已经存储在一个变量中,它也可以在查询字符串中使用。
/index.php?id=taskmanager&fullpage=21624
我尝试了大约 20 个小时来更新 JavaScript 代码,但我无法将其安排为可以触发
location.reload(真)
你能给我一些提示吗?我想我只需要知道如何将 event.data 变量保存到一个全局变量中,以便在函数触发更新之前使用,但我们将不胜感激任何进一步的建议。