1

当我从我的管理员更新分数时,我想在不刷新的情况下自动更新客户端中的分数,任何人都可以帮助脚本和技术我看到这样的自动刷新https://stackoverflow.com/ 答案,视图自动更新

4

4 回答 4

1

我知道这样做的唯一方法是从客户端主动轮询您的服务器。

您需要创建一些轮询脚本来调用您的脚本服务页面并请求数据。然后,当数据保存在管理页面中时,服务将在下次询问时返回最新分数。

通常,您会使用 setInterval 和 clearInterval。因此,在页面加载时,您可以将轮询函数调用分配给 setInterval 方法,并给它一个合理的超时时间(10 秒以上,具体取决于您希望更新分数的频率和流量有多大)。

每当您想停止轮询时,都需要使用 clearInterval 。根据另一个答案,JS 框架将帮助您以 Xml 或 JSON 格式发出 Ajax 请求。鉴于您的标签暗示“更快”,那么我推荐 JQuery 和 JSON。

此外,无论您使用什么框架,都可以考虑使用 Google 的 CDN 来快速部署该框架。

我不知道任何使用 Ajax 的服务器推送,所以有兴趣看看该方法是否可用(尽管我对此表示怀疑)。

编辑:添加了有关 Google cdn 和框架的更多信息。高温下,

小号

于 2009-03-31T12:57:44.823 回答
0

您可能想研究一个 js 框架。

您执行此操作的步骤类似于:

向您的链接/按钮添加一个 onclick 侦听器当触发时,停止事件(这样您就可以阻止浏览器刷新/重定向页面)获取用户提交的数据并通过 json ajax 请求将其发送到服务器处理数据服务器侧并返回响应 处理响应并相应地更新接口

以下是有关如何使用 mootools 执行此操作的更多文档: * http://mootools.net/docs/Request/Request.JSON如果您想使用 JSON 路径 * http://mootools.net/docs /Request/Request.HTML如果你只想要一个 AJAX 更新程序

于 2009-03-31T12:55:59.070 回答
0

虽然我没有使用它,但听起来这就是“彗星”旨在解决的问题。这是一种将内容从服务器流式传输到客户端的方式——基本上是一种“推送”方式。这可能是您正在寻找的东西。

http://ajaxian.com/archives/comet-a-new-approach-to-ajax-applications

于 2009-03-31T13:01:12.990 回答
0

如果使用 AJAx,则无需刷新页面。

使用 AJAX,您可以调用服务器并将结果放在网页的一部分中,而无需刷新页面。

这里有一篇关于通过 jQuer y 使用 AJAX 的文章。

AJAX 上的jQuery 文档也很好。

下面显示了一个从服务器请求数据并将结果附加到页面部分的示例:

 $.ajax({
   type: "POST",
   url: "some.php",
   data: "name=John&location=Boston",
   success: function(msg){
     $("#results").append(msg);
   }
 });
于 2009-03-31T13:04:25.213 回答