使用cookie实现进度条

时间:2013-07-29 02:20:21

标签: php ajax cookies

我有一个需要一段时间才能运行的PHP脚本,我想提醒用户它的进度。我在使用cookie实现这一点时遇到了麻烦。我现在的代码如下:

jQuery的:

$(document).on('click', '#pop_db', function() {
    $.post(
        "pop_db.php",
        function(data) {
            var response = jQuery.parseJSON(data);
            if(response.code == "success") {
                // success
            } else if(response.code == "failure") {
                // failure
            }
        }
    );

    setInterval(function() { get_user_updates(); }, 5000);
});

function get_user_updates() {
$.post(
    "get_user_update.php",
    function(data) {
        var response = jQuery.parseJSON(data);
        if(response.code == "success") {
            // success
        } else if(response.code == "failure") {
            // failure
        }
    }
);
}

pop_db.php文件负责执行需要一段时间的PHP工作。在其中我设置了一个cookie,以便我可以在间隔内获取它:

require_once('includes/database.php');
$dbh = db_connect();

$response = array();
$response['code'] = "success";

setcookie('users_to_update', /*some value */, time() + 120);
setcookie('users_updated', 0, time() + 120);

// do lots of work in a loop

$_COOKIE['users_updated'] += 1;        

echo json_encode($response);

获取用户更新文件非常简单:

$response = array();
$response['code'] = "success";

$response['users_to_update'] = $_COOKIE['users_to_update'];
$response['users_updated'] = $_COOKIE['users_updated'];

echo json_encode($response);

所以这一切都行不通。在填充数据库的第一个POST请求完成后,该间隔似乎运行。

我尝试使用数据库表来完成此任务,但遇到了类似的问题。

我在这里缺少一些概念性的东西,或者有没有人注意到我的代码有问题?

0 个答案:

没有答案