Php 在网页之后加载服务器状态

Php 在网页之后加载服务器状态,php,Php,好吧,这就是我的问题;我现在有一个工作网页,它使用minecraft查询检查minecraft服务器,使用Teamspeak framework for PHP检查我的Teamspeak服务器 现在的问题是,检查这些东西需要很长时间,网站会暂停加载,直到服务器在线或离线 有没有办法先加载网站,然后检查服务器是否已启动? 还有什么方法可以在不重新加载页面其余部分的情况下偶尔重新加载一次 我想你可以用JavaScript来实现这一点,但因为我从未使用过它,所以我不知道 注: 我之所以不发布代码,是因

好吧,这就是我的问题;我现在有一个工作网页,它使用minecraft查询检查minecraft服务器,使用Teamspeak framework for PHP检查我的Teamspeak服务器

现在的问题是,检查这些东西需要很长时间,网站会暂停加载,直到服务器在线或离线

有没有办法先加载网站,然后检查服务器是否已启动? 还有什么方法可以在不重新加载页面其余部分的情况下偶尔重新加载一次

我想你可以用JavaScript来实现这一点,但因为我从未使用过它,所以我不知道

注:
我之所以不发布代码,是因为代码中有一些敏感的信息,我不知道是否需要它。如果是,请告诉我。

对PHP脚本(位于服务器上)进行AJAX调用,然后该脚本查询和检查服务器的状态,并将结果发送回客户端。这将导致每次加载页面时调用脚本,并可能导致大量资源使用


或者,您可以定期检查(使用a或类似工具)服务器的状态,并将其存储在数据库中,并在请求时显示它们。

对PHP脚本(位于服务器上)进行AJAX调用,然后PHP脚本查询和检查服务器的状态,并将结果发送回客户端。这将导致每次加载页面时调用脚本,并可能导致大量资源使用


或者,您可以定期检查(使用或类似)服务器的状态,并将其存储在数据库中,并在请求时显示它们。

这种模式通常使用javascript。通常情况下,您会让javascript向服务器上的另一个页面发出请求,以仅获取该数据(通常为json格式)。查看ajax以了解它是如何完成的,但最好使用js库为您完成这项工作——jquery非常常见。根据您需要做的事情,您可能会发现一个框架很有用-AngularJS是我选择的毒药。

对于这种模式,使用javascript是很常见的。通常情况下,您会让javascript向服务器上的另一个页面发出请求,以仅获取该数据(通常为json格式)。查看ajax以了解它是如何完成的,但最好使用js库为您完成这项工作——jquery非常常见。根据你需要做什么,你可能会发现一个框架很有用——AngularJS是我选择的毒药。

我也会选择JavaScript和XHR或WebSocket。但万一这对您来说太大了,您也可以尝试将结果分块提供(使用
Transfer-Encoding:chunked
HTTP头)

然后,您可以一个接一个地输出服务器列表,每个数据块都将在可用时由浏览器显示。为此,需要首先禁用任何类型的输出缓冲(
while(ob_get_level()>0)ob_end_clean();
),使用PHP的
header
函数显式设置头,并在每个块之后使用
flush()
。理想情况下,HTML的排列方式应确保在此之前输出所有其他信息(服务器状态除外)

另外,请注意,当使用新块更新DOM时,并非所有浏览器都有相同的时间间隔,只要HTML文档“未完成”,您就完全依赖于浏览器的标记汤解析。也就是说,这是一种避免编写脚本以实现目标的便捷方法


或者,您也可以尝试使用
标记将状态部分嵌入静态页面。

我也会使用JavaScript和XHR或WebSocket。但万一这对您来说太大了,您也可以尝试将结果分块提供(使用
Transfer-Encoding:chunked
HTTP头)

然后,您可以一个接一个地输出服务器列表,每个数据块都将在可用时由浏览器显示。为此,需要首先禁用任何类型的输出缓冲(
while(ob_get_level()>0)ob_end_clean();
),使用PHP的
header
函数显式设置头,并在每个块之后使用
flush()
。理想情况下,HTML的排列方式应确保在此之前输出所有其他信息(服务器状态除外)

另外,请注意,当使用新块更新DOM时,并非所有浏览器都有相同的时间间隔,只要HTML文档“未完成”,您就完全依赖于浏览器的标记汤解析。也就是说,这是一种避免编写脚本以实现目标的便捷方法


或者,您还可以尝试使用
标记将状态部分嵌入静态页面。

您需要学习Javascript并使用AJAX或web套接字。使用Javascript AJAX调用加载脚本,检查服务器是否已进入div。您还可以使用Javascript刷新内容。您需要学习Javascript和使用AJAX或web套接字。使用javascript AJAX调用加载脚本,检查服务器是否进入div。您还可以使用javascript刷新内容。