从PHP页面即时MySQL更新 - AJAX?

时间:2011-11-22 11:03:54

标签: php mysql ajax

进行了搜索,但没有什么能为我提供一条好路线(可能是我的不好)。

我已经建立了一个可以在iPad上运行的系统 - 并且可以作为进入场地的人的柜台。从本质上讲,每次在网页上按下按钮时,它都是从记录的PHP简单插入到MySQL数据库中。

也就是说,当有人进入场地时,当有人离开“Out”时,门上的人按下“In”,将“及时”插入MySQL数据库,并在任何时候将“out time”插入我们可以看到有多少人在场地。

Simples。然而,当然,当任何时候有多个人进入场地时,这是非常缓慢的,所以我想知道你们如何处理这个问题。我看过AJAX,我必须承认这不是我的领域,但我有一个游戏。我自然担心不丢失任何数据,但是,我们不能让系统等待10秒重新加载页面。

我最初的想法是拥有一个AJAX'东西' - 当按下'IN'/'OUT'按钮时,它会调用另一个PHP页面来执行MySQL插入。这是明智的吗?或者有更好的方法吗?由于我对AJAX解决方案的关注是对“insert.php”页面的新调用会取消前一个的执行,因此数据可能会丢失吗?我是对的吗?

任何人的见解都会非常有帮助。

提前致谢。

赖安

3 个答案:

答案 0 :(得分:1)

布局上有多个按钮可能会更好,例如:

IN:1 2 3 4 5 6 7 8 9 10 OUT:1 2 3 4 5 6 7 8 9 10

它会节省发送请求的数量(并且需要按下相同的按钮10次)。

除此之外,Ajax可能是一个想法,但你需要一些输出给用户,以便他们知道他们按下按钮实际上做了一些事情(因为它没有刷新页面,它做什么都不明显)。

但如果重新加载页面需要很长时间,那么瓶颈可能不是因为页面正在重新加载 - 可能是服务器因请求过载(我的建议应该减少),或者可能是一些编写错误的代码需要一段时间才能执行的结果。

答案 1 :(得分:1)

您可以使用jquery轻松实现此目的。

首先使用$ _POST ['message']从主文件发布数据并在另一个文件中捕获数据,以确认成功保存的数据,您可以输出json。这是示例

在你的html或php页面上

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>

 <script type="text/javascript">    
 $(document).ready(function() {


$("#send_data").click(function(event){
var message= 'This is my message';
sendtodb(message);
});


});


function sendtodb(message){
$.post("save.php",{message:message},function(data){
alert(data.status);
},"json");
}

</script>

现在在secon文件中保存数据:

<?php

$msg=$_POST['message'];

mysql_query("insert query");

json_encode(array('status'=>'data saved'));

?>

答案 2 :(得分:0)

我认为使用AJAX是前进的方向,而jQuery确实让它变得非常简单。只是一些额外的想法和想法:

  1. 如果用户在ajax请求实际完成之前一直点击,可能会发生竞争情况,尤其是在服务器过载的情况下。我会做谷歌搜索在这里做的事情,并确保你保留以前的AJAX请求的记录,并在新的请求启动时取消它,请参阅this other post

  2. 使用您的后端PHP脚本,我认为这很可能会成为更大的PHP应用程序的一部分。尝试确保可能为前端站点执行的任何其他处理(例如构建菜单)不是在AJAX请求上完成的,因为您不需要它并且它只会浪费处理器时间。

  3. 为了更加健壮,请从PHP脚本发送一个返回值,其中可能包含状态代码,以便您可以检测呼叫是否实际完成。