我正在尝试使用PHP创建一个拍卖工具。我遇到的问题(我很欣赏它的基本问题,但我需要澄清)是我不明白如何在每个用户屏幕上自动更新“拍卖价格”而不必采取任何行动或不引起完全重新加载页面。
到目前为止,我理解Ajax已经习惯了,但是如果有人能指出我正确的方向或任何有用的材料。到目前为止,我对项目的计划是使用PHP和JavaScript,因此任何解决方案都需要与这些语言兼容。
注意:我正在使用MySQL数据库。
答案 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.html
和record_count.php
个文件
以下是代码:
index.html
包含加载record_count.php
<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)
当我制作交互式显示器时,必须立即切换页面,然后我创建页面而不刷新。
我的方法是这样的:
有一些缺点,可以修复,例如地址栏中每个页面的链接。在这种情况下,您需要在页面切换的地址栏中添加历史记录管理和更改URL。