【问题标题】:jquery multiple ajax request - causes problems with php objectsjquery 多个 ajax 请求 - 导致 php 对象出现问题
【发布时间】:2012-06-15 14:16:29
【问题描述】:

我正在尝试一次处理和更新 1000 个项目的查询。 我厌倦了设置缓存为假,甚至尝试 setTimeout 在请求之间暂停。 每个请求需要 5-6 秒,然后进程永远不会超时,但在 4-5 次请求后,它会达到服务器执行限制。

问题是我需要在更新查询中使用 PHP 对象。 每个请求似乎都需要更长的时间,所以似乎对象在 PHP 中循环

有没有办法阻止这种情况发生?

这里是javascript代码

function processIndex() {
    $.ajax({
        url: responder,
        dataType: "json",
        data: data,
        cache: false,
        async: false,
        error: function(XMLHttpRequest, textStatus, errorThrown){
        //  alert('status:' + XMLHttpRequest.status + ', status text: ' + XMLHttpRequest.statusText + ' LIMIT ' + limitFrom + ', ' + limitTo);
            limitFrom = limitTo;
            limitTo  += 1000;
            processIndex('indexPrices');
        },
        success: function(data) {
                    limitFrom = limitTo;
                    limitTo  += 1000;
                    setTimeout(function() {
                        processIndex();
                    }, 1000);
                }
            });
        }
    });
}

【问题讨论】:

    标签: php jquery ajax object


    【解决方案1】:

    你可以使用 http://www.protofunc.com/scripts/jquery/ajaxManager/

    https://gist.github.com/2470554

    将 ajax 请求排队。

    另一种方法是发送少量记录(例如一次 50 条记录)并在服务器端代码中循环遍历它们。

    您可以结合这两种解决方案以获得最佳效果

    【讨论】:

    • 好的,我会尝试直接通过 PHP 循环数据 客户端的请求不会仍然超时吗?例如,对于 1 个请求,最多可能需要 2 分钟。
    • 天哪!你的一个请求需要 2 分钟...顺便说一句,请求超时可以在 php 代码本身中管理php.net/manual/en/function.set-time-limit.php
    猜你喜欢
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-17
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    相关资源
    最近更新 更多