2016-02-04 54 views
1

我有一个脚本,处理数据与一些Ajax调用,这取决于用户点击和改变呼叫再次完成(工作正常)。阿贾克斯第一次电话

$.ajax({ 
    type: "POST", 
    url: "process_data.php", 
    data: { action: "first_action",data:data}, 
    dataType: 'json', 
    success:function(result){ 
     //process 
    }, 
    error: function(XMLHttpRequest, textStatus, errorThrown) { 
    } 
}); 

为了节省时间,我只希望在第一AJAX调用执行我的process_data.php文件中的一些查询,并把它们保存到变量,所以我不必在每次调用执行相同的查询。 如何抓住阿贾克斯的第一个电话?

回答

5

我相信你可以设置一个$_SESSION标志来检查客户端的请求是否执行了这个调用。

$_SESSION["exed"] = false; 

if (!$_SESSION["exed"]) { 
    // Execute The Stuff 
    // Reset the session 
    $_SESSION["exed"] = true; 
} 

或者即使上述看起来很愚蠢,首先会话将不会被设置。

if (!isset($_SESSION["exed"])) { 
    // Execute The Stuff 
    // Reset the session 
    $_SESSION["exed"] = true; 
} 

或者,如果你想为所有的客户做一次,然后就可以使用服务器上的文件和管理。让我知道这是否会奏效。

此外,必须小心确保会话已启动。请参阅session_start上的PHP手册页。

+1

这是与会议合作的好主意 - Thx –

+0

@Amani尼斯。乐意效劳。 ':''确保你在开始时加入了'session_start()'。 ':)' –

+1

是的确定:)用户只有在开始会话后才能访问此文件 –