无刷新页面自动更新记分板

时间:2009-03-31 12:50:58

标签: php ajax automation auto-update performance

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

4 个答案:

答案 0 :(得分:1)

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

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

通常,您使用setInterval和clearInterval。因此,在页面加载时,您将轮询函数调用分配给setInterval方法,并给它一个明智的超时(10秒加上取决于您期望更新分数和流量有多大)。

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

此外,无论您使用何种框架,请考虑使用Googles CDN快速部署该框架。

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

编辑:在Google cdn和框架上添加了更多信息。 HTH,

取值

答案 1 :(得分:0)

您可能想要查看js框架。

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

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

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

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

这里有一篇关于使用AJAX via jQuer y。

的文章

jQuery documentation on AJAX也很好。

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

 $.ajax({
   type: "POST",
   url: "some.php",
   data: "name=John&location=Boston",
   success: function(msg){
     $("#results").append(msg);
   }
 });