2016-02-04 53 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

是的確定:)用戶只有在開始會話後才能訪問此文件 –