维护会话的JavaScript HTTP客户端

维护会话的JavaScript HTTP客户端,javascript,php,session,Javascript,Php,Session,我写了一个PHP记分板,它基本上监视一个mysql表,其中包含实时的体育成绩。用户通过加载页面来使用它,然后页面每5秒重新加载一次。最后加载的记分板存储在会话中,并与当前加载的记分板进行比较。如果一个玩家改变了排名,PHP脚本会在页面中添加javascript,根据他们是否失去或获得排名,该页面会显示该玩家的红色或绿色高亮效果 我正在寻找的基本上是一种编写JavaScript脚本的方法,我可以在我的站点上托管该脚本,该脚本可以远程包含在其他站点上,基本上可以与我的服务器保持会话,每5秒加载一次记

我写了一个PHP记分板,它基本上监视一个mysql表,其中包含实时的体育成绩。用户通过加载页面来使用它,然后页面每5秒重新加载一次。最后加载的记分板存储在会话中,并与当前加载的记分板进行比较。如果一个玩家改变了排名,PHP脚本会在页面中添加javascript,根据他们是否失去或获得排名,该页面会显示该玩家的红色或绿色高亮效果

我正在寻找的基本上是一种编写JavaScript脚本的方法,我可以在我的站点上托管该脚本,该脚本可以远程包含在其他站点上,基本上可以与我的服务器保持会话,每5秒加载一次记分板并显示结果,包括突出显示已更改排名的玩家


基本上,我想我需要一个用JavaScript实现的HTTP客户机来实现这一点。我在谷歌上搜索过,但有很多行话要分析。此外,我不希望使用jquery或任何其他库,因为这些库可能已经存在于远程站点上,我不希望引起冲突。我认为一个纯javascript解决方案是理想的。

正如大家建议的那样,您应该使用ajax从php服务器检索数据,而不是重新加载页面。如果您不想使用任何库(比如jQuery),那么可以像这样使用纯ajax。然后使用该函数每5分钟调用一次该函数

但如果您可以使用jQuery,那就太好了,因为您已经有了一个

$.ajax({
  type: "POST",
  url: "some.php",
  success:function(msg){
         //you can update the data here
  }),
});

在处理记分板应用程序时,我可以想到两种方法: 1) 使用PHP+AJAX+MySQL,如果您的应用程序和数据库位于同一台服务器上,并且AJAX应用程序返回的信息量很小,那么这将非常好

2) 使用websocket应用程序(如socket.io()甚至ratchet())仅在有更新时更新记分板上的信息


我个人更喜欢在处理记分板时使用websocket方法,因为它还允许我在有更新时执行自定义警报。

与其每隔5秒重新加载php页面,为什么不使用ajax从php脚本中提取数据呢?听起来很棒。在PHP端我需要做什么,在javascript端我需要做什么?基本上,有一个PHP文件,它有从任何地方提取数据的函数。然后有一个单独的页面,它使用jQuery的.ajax()向第一个页面提供参数(一种方法是通过post实现)。然后显示这些结果。让jQuery脚本每5分钟运行一次。谢谢,我去看看。但问题是,既然我想将脚本设计成在各种情况下都可以远程包含,那么有没有一种方法可以选择性地包含jquery代码?一些网站已经有jquery,而其他网站可能没有。jQuery确实是JavaScript,所以我想你可以知道它是如何进行Ajax调用并使用该代码的,但是我不认为它包括JQuery是值得的。