Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 新mysql条目时自动刷新_Javascript_Mysql - Fatal编程技术网

Javascript 新mysql条目时自动刷新

Javascript 新mysql条目时自动刷新,javascript,mysql,Javascript,Mysql,因此,我为我工作的公司构建了一个仪表板,它只显示符合cretin条件的所有mysql条目 我的问题很简单,但答案可能不是 当向数据库添加新条目时,我可以使用什么方法(最有可能是JavaScript)刷新页面 数据库从Web表单收集信息,因此当新用户填写表单时,我喜欢刷新页面,从而显示新条目 我现在使用JavaScript来简单地刷新仪表板所在的url,每5分钟刷新一次,但我希望只有在有新条目时才会更新 谢谢大家! 有关高级解决方案,请参见答案末尾的“使用web套接字通知用户更改…” 碱性溶液 您

因此,我为我工作的公司构建了一个仪表板,它只显示符合cretin条件的所有mysql条目

我的问题很简单,但答案可能不是

当向数据库添加新条目时,我可以使用什么方法(最有可能是JavaScript)刷新页面

数据库从Web表单收集信息,因此当新用户填写表单时,我喜欢刷新页面,从而显示新条目

我现在使用JavaScript来简单地刷新仪表板所在的url,每5分钟刷新一次,但我希望只有在有新条目时才会更新


谢谢大家!

有关高级解决方案,请参见答案末尾的“使用web套接字通知用户更改…”

碱性溶液 您可以定期向应用程序发送Ajax请求以检查更改。这称为短轮询(如果您想进一步研究它)。基本上,每隔30秒,您就会在应用程序上请求一些脚本来检查更改

可以根据上次修改的日期检测更改,如果不能依赖上次修改的日期,则可以根据序列化对象的哈希快照检测更改

如果有更改,则可以通过Ajax请求返回该更改。如果可能的话,如果可以沿同一请求发送所有更改,则不需要进行完全刷新。(或者让客户请求另一个页面)

高级解决方案 我使用的典型方法如下

  • 用户连接到网页并打开服务器的websocket(如果浏览器不支持WS,则长轮询)。有很多库/服务可以处理这个问题,比如Pusher.js或Socket.io(如果你想自己运行的话)

  • 用户将“连接”到一个频道,以表示他们有兴趣接收此信息或数据或内容的更新。。。等等

然后其他人可能会过来更新一些数据,否则会改变他们对内容的看法。现在,让第一个用户知道此更改的最简单方法是通过其活动web套接字“推送”更改

我处理这个问题的方法是在事件侦听器中通过模型包装。当我通过应用程序的持久层(99%的情况下都是数据库)持久化模型时,我可以让我的事件侦听器沿着与该模型相关的各个websocket连接通道触发事件/数据包

您可以通过通道发送完整的快照,也可以只说“嘿,有可用的更新”,然后用户将对服务器进行实际更改


使用“推送”方法的好处是,通过设置观察模型更改的事件侦听器,它可以很好地扩展,并且不会有成百上千的客户端不断刷新

有关高级解决方案,请参见答案末尾的“使用web套接字通知用户更改…”

碱性溶液 您可以定期向应用程序发送Ajax请求以检查更改。这称为短轮询(如果您想进一步研究它)。基本上,每隔30秒,您就会在应用程序上请求一些脚本来检查更改

可以根据上次修改的日期检测更改,如果不能依赖上次修改的日期,则可以根据序列化对象的哈希快照检测更改

如果有更改,则可以通过Ajax请求返回该更改。如果可能的话,如果可以沿同一请求发送所有更改,则不需要进行完全刷新。(或者让客户请求另一个页面)

高级解决方案 我使用的典型方法如下

  • 用户连接到网页并打开服务器的websocket(如果浏览器不支持WS,则长轮询)。有很多库/服务可以处理这个问题,比如Pusher.js或Socket.io(如果你想自己运行的话)

  • 用户将“连接”到一个频道,以表示他们有兴趣接收此信息或数据或内容的更新。。。等等

然后其他人可能会过来更新一些数据,否则会改变他们对内容的看法。现在,让第一个用户知道此更改的最简单方法是通过其活动web套接字“推送”更改

我处理这个问题的方法是在事件侦听器中通过模型包装。当我通过应用程序的持久层(99%的情况下都是数据库)持久化模型时,我可以让我的事件侦听器沿着与该模型相关的各个websocket连接通道触发事件/数据包

您可以通过通道发送完整的快照,也可以只说“嘿,有可用的更新”,然后用户将对服务器进行实际更改


使用“推送”方法的好处是,通过设置观察模型更改的事件侦听器,它可以很好地扩展,并且不会有成百上千的客户端不断刷新

哇,真是不可思议。我是一个简单的php开发人员,不太精通javascript。在这种情况下,短轮询是你的朋友。如果不定期轮询服务器,就没有办法做你需要的事情。哇,真是让我头疼。我是一个简单的php开发人员,不太精通javascript。在这种情况下,短轮询是你的朋友。如果不定期轮询服务器,就无法完成您需要的操作。您可以使用AJAX每隔20秒左右查询一次数据库,然后如果发现新记录,刷新页面。听起来与我需要的完全一样。AJAX会寻找一个计数,然后在计数不同时更新吗?我想我需要了解更多,我认为AJAX不能查询mysql,因为它是