【问题标题】:JavaScript HTTP Client that maintains session维护会话的 JavaScript HTTP 客户端
【发布时间】:2014-03-21 16:14:43
【问题描述】:

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

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

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

【问题讨论】:

  • 与其每5秒重新加载一次php页面,不如使用ajax从php脚本中拉取数据?
  • 听起来不错。我需要在 PHP 端做什么,在 javascript 端我需要做什么,才能做到这一点?
  • 基本上,有一个 PHP 文件,它具有从任何地方提取数据的功能。然后有一个单独的页面,它使用 jQuery 的 .ajax() 为您的第一页提供参数(一种方法是通过发布来完成)。然后显示这些结果。让 jQuery 脚本每 5 分钟运行一次。 start here
  • 谢谢,我去看看。不过问题是,由于我想将我的脚本设计为在各种情况下都可以远程包含,有没有办法选择性地包含 jquery 代码?有些网站已经有 jquery,有些则没有。
  • 可能。 jQuery 真的只是 javascript,所以我想你可以弄清楚它是如何进行 ajax 调用并使用该代码的,但我认为不值得花时间包含 jQuery。

标签: javascript php session


【解决方案1】:

在处理记分牌应用程序时,我可以想到两种方法: 1)使用PHP + AJAX + MySQL 如果你的应用和数据库在同一台服务器上,那很好,而且AJAX应用返回的信息量很小。

2) 仅当有更新时,才使用诸如 socket.io (http://socket.io/) 甚至棘轮 (http://socketo.me/) 之类的 websocket 应用来更新记分板上的信息。

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

【讨论】:

    【解决方案2】:

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

    但是如果你可以使用 jQuery 那就太好了,因为你已经有了一个ajax function,所以你可以做这样的事情:

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

    【讨论】:

      猜你喜欢
      • 2010-12-17
      • 1970-01-01
      • 2020-07-29
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 2018-10-22
      • 2012-04-25
      • 1970-01-01
      相关资源
      最近更新 更多