如何在不使用php / ajax重新加载网页的情况下自动更新内容?

时间:2015-01-24 11:58:26

标签: javascript php jquery html ajax

我正在尝试使用PHP创建一个拍卖工具。我遇到的问题(我很欣赏它的基本问题,但我需要澄清)是我不明白如何在每个用户屏幕上自动更新“拍卖价格”而不必采取任何行动或不引起完全重新加载页面。

到目前为止,我理解Ajax已经习惯了,但是如果有人能指出我正确的方向或任何有用的材料。到目前为止,我对项目的计划是使用PHP和JavaScript,因此任何解决方案都需要与这些语言兼容。

注意:我正在使用MySQL数据库。

3 个答案:

答案 0 :(得分:3)

你问的问题有很多可能的答案,他们可以填写整本书。

最简单的方法是使用setInterval()函数和AJAX调用的组合每隔几秒进行一次ajax调用。您基本上每隔几秒就发出一次AJAX请求:

setInterval(function(){
$.get( "anyChanges.php", function( data ) {
  //do something with the returned data. Maybe update a table or something
});
}, 3000);

在服务器端anyChanges.php立即返回一些数据,例如确认某些内容已发生变化以及新数据。

长时间轮询是谷歌和其他人的做法。它与上面的例子相同。不同之处在于服务器端。 anyChanges.php不会立即返回,脚本将保持连接打开,直到有一些新的更改并返回它们。如果使用长轮询,通常将间隔设置为更长,例如30秒。

在我看来,最好的方法是WEB套接字。这是一项非常新的技术。使用Web套接字,您可以创建与服务器的双向连接。这意味着服务器可以简单地将数据发送到客户端,而不必每隔几秒就要求新数据。在PHP中,使用网络套接字有点困难(或者我听说过),但是你可以试一试。如果您选择网络套接字,请先尝试了解它们: tutsplus tutorial

这个图书馆会有所帮助: socketo.me

答案 1 :(得分:1)

Php / Ajax示例:

在此示例中,您有index.htmlrecord_count.php个文件

以下是代码:

index.html包含加载record_count.php

的html代码和javascript调用
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<script type="text/javascript">
   var auto_refresh = setInterval(
      function ()
      {
         $('#load_tweets').load('record_count.php').fadeIn("slow");
      }, 10000); // refresh every 10000 milliseconds
</script>

<body>
     <div id="load_tweets"> </div>
</body>

record_count.php有php代码

<?php
echo "some code or variable here";
?>

您可以更改javascript间隔以满足您的需求

我会留下博客链接作为参考:9lessons

答案 2 :(得分:0)

当我制作交互式显示器时,必须立即切换页面,然后我创建页面而不刷新。

我的方法是这样的:

  1. 我有一个index.html,所有结构(页面)都包含所有必需的html标签。
  2. javascript / typescript从CMS(例如Kirby)加载json,其中包含有关文本和图像链接的所有信息。
  3. 现在加载json时我只需要通过显示/隐藏或创建/删除html元素来切换页面。并且所有数据和文本都是通过javascript加载的。
  4. 有一些缺点,可以修复,例如地址栏中每个页面的链接。在这种情况下,您需要在页面切换的地址栏中添加历史记录管理和更改URL。