如何检查两个类似的数据库调用是否返回相同的PHP数据

时间:2016-01-12 08:54:47

标签: javascript php ajax

我正在尝试检查来自PHP的两个相同的背靠背调用DB是否返回相同的数据,

我在javascript中有一个setTimeoutFunction,它调用服务器上的一个函数来调用数据库,粗略的结构就是这样的

  function getOnlineUsers(){
      ajaxCall({type:'get',method:'getOnlineUsersDB'},getOnlineUsersCallBack);
    setTimeOut(1000);
    }

function getOnlineUsersCallBack(jsonObj){
//do something online only if 'jsonObj' is different from last jsonObj
}

PHP中的服务器端功能

$cacheData; // variable to cache data from previous calls to the DB

function getOnlineUserDB(){

$sql="select onlineusers from someTable ";

$data=getFromDbAndCastArray($sql);

if($data!=$cacheData){
                $cacheData=$data;
                return json_encode($data); //something new is returned since the last time
            }
            else {
                return false;
            }

}

如果收到的数据在后续调用之间相同,我基本上不想将callBack运行到Ajax调用。 我尝试通过尝试在php中的全局变量中缓存数据但尝试失败。

我也可以尝试在前端检查这个,但不确定哪种方法最好。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法

  1. 在Javascript中声明全局变量。
  2. 将值存储在从服务器收到的全局变量中。
  3. 在Ajax调用中将全局变量传递给服务器,对于第一次调用,全局变量的值将为空。
  4. 在PHP方面,如果参数接收值不为空,则从接收的值创建一个数组。
  5. 将查询结果存储在数组中。
  6. 比较两个数组并相应地返回结果。