Php setInterval会使客户端PC过载吗?
我有一个关于使用setInterval()的问题;在javascript中。我正在开发一个医院的(PHP/SQL,Ajax)数据库,现在每当执行pateints测试时,它都会在主屏幕上显示一条消息,说“(pateints Name)”的测试结果已更新”。我试着用php脚本来做,但无法直接从php脚本触发事件。现在我使用setInterval()来实现这个目的,它运行一个函数,每10秒检查一次pateints数据库,并在添加新测试时显示消息Php setInterval会使客户端PC过载吗?,php,javascript,jquery,sql,ajax,Php,Javascript,Jquery,Sql,Ajax,我有一个关于使用setInterval()的问题;在javascript中。我正在开发一个医院的(PHP/SQL,Ajax)数据库,现在每当执行pateints测试时,它都会在主屏幕上显示一条消息,说“(pateints Name)”的测试结果已更新”。我试着用php脚本来做,但无法直接从php脚本触发事件。现在我使用setInterval()来实现这个目的,它运行一个函数,每10秒检查一次pateints数据库,并在添加新测试时显示消息 setInterval(checkAndDispl
setInterval(checkAndDisplayNewResults(), 10000);
我的问题是“这是正确的方法吗?它不会使服务器或客户端PC过载吗?如果这不是正确的方法,那么还有什么选择?这取决于函数的功能,但很可能不是10秒的间隔。不过,您可能应该这样编写:
setInterval(checkAndDisplayNewResults, 10000);
这取决于函数的功能,但如果间隔为10秒,则很可能不是。不过,您可能应该这样编写:
setInterval(checkAndDisplayNewResults, 10000);
是的,这是正确的方式,你别无选择,例如Gmail,使用相同的技术向你显示新邮件。是的,这是正确的方式,你别无选择,例如Gmail,使用相同的技术向你显示新邮件。我认为你会使服务器过载。特别是如果有大量连接来自不同地方的信息。使用Comet技术可能有助于:
我认为您会使服务器过载。特别是当有大量来自不同地方的连接时。使用Comet技术可能会有所帮助:
问题不在于
setInterval()
,因为它只是执行代码
问题在于:
问题不在于
setInterval()
,因为它只是执行代码
问题在于:
永远每10秒轮询一次服务器很少是获得更新的正确方法。这对客户端、服务器和网络来说都是极为低效的。您应该将轮询时间间隔缩短到更慢的时间间隔,或者实现更智能的服务器推送解决方案 一种更有效的解决方案是由长时间运行的服务器请求组成,这些请求将在服务器提供数据后立即返回数据
HTML5还指定了一个接口,允许客户端和服务器之间只打开一个套接字,并根据需要自由发送数据。永远每10秒轮询一次服务器很少是获得更新的正确方式。这对客户端和服务器以及网络来说都是极为低效的。您应该将轮询间隔返回到一个慢得多的时间间隔,或者实现一些更智能的方法,比如服务器推送解决方案 一种更有效的解决方案是由长时间运行的服务器请求组成,这些请求将在服务器提供数据后立即返回数据
HTML5还指定了一个接口,允许客户端和服务器之间只打开一个套接字,并根据需要自由发送数据。如果使用setInterval,请确保只设置一次间隔。否则,可能会得到多个实例
您可以搜索WebSocket并查看这是否是您的解决方案,如果使用setInterval,请确保仅设置一次间隔。否则可能会得到多个实例
您可以搜索WebSocket,看看这是否是您的解决方案服务器应该每10秒处理一个请求,没有问题,我认为这是不言自明的 客户端也不会有任何问题,只要确保像Joseph所说的那样去掉DOM元素,否则RAM就会慢慢填满 这一切都归结为你有多少个客户端。请注意,一个Web服务器可以处理相当多的请求,所以不要害怕使用它。但是你没有提到有多少个客户端 如果有很多客户端,我唯一想到的就是数据库,那么这个查询有多重?应该缓存结果吗?可能每5-10秒一次
如果使用AJAX是实现这一点的最简单的方法,那么我会说:去做吧:)服务器应该每10秒处理一个请求,没有问题,我认为这是不言自明的 客户端也不会有任何问题,只要确保像Joseph所说的那样去掉DOM元素,否则RAM就会慢慢填满 这一切归结于你有多少个客户端。请注意,Web服务器可以处理相当多的请求,所以不要害怕使用它。但是你没有提到