如何更新原始文件上的元素,以便用户可以在处理文件上取得进展时查看进度

时间:2015-05-13 13:34:47

标签: php jquery

我越来越熟悉jQuery,但是,我无法弄清楚这一点。

我有一个页面收集数据并通过jQuery将数据发送到处理文件。这是代码......

$( "#start_it" ).click(function(){
            var url = 'grunt/process.php';
            var keywords = $("#keywords").val();        
            var providers = $('input[name="providers"]:checked').map(function (){return this.value;}).get().join(",");
            var networks = $('input[name="networks"]:checked').map(function (){return this.value;}).get().join(",");
            var ex_ct = $("#ex_ct").val();
            var list_type = $("#list_type").val();
            var shuffle = $("#shuffle").val();      
            var postit = $.post( url, {
                keywords:keywords,
                providers:providers,
                networks:networks,
                ex_ct:ex_ct,
                list_type:list_type,
                shuffle:shuffle             
                });     
            postit.done(function( data ) {alert(data);});       
        });

在process.php上,它循环遍历每个提供程序,并在提供程序循环中循环遍历每个网络。我想要做的是能够显示正在收集页面上的用户所取得的进展,而process.php正在每个循环开始时在场景后面处理。这是代码:

foreach($providers as $provider){
        $pros = explode(',',$provider); foreach($pros as $pro){

            // I WANT TO BE ABLE TO UPDATE A DIV ON THE 
            // COLLECTION PAGE TO TELL THEM WHICH PROVIDER 
            // THE SCRIPT IS PROCESSING HERE



            foreach($networks as $network){ 
                $nets = explode(',',$network); foreach($nets as $net){

                // I WANT TO BE ABLE TO UPDATE A DIV ON THE 
                // COLLECTION PAGE TO TELL THEM WHICH NETWORK 
                // THE SCRIPT IS PROCESSING HERE





                } # $nets as $net
            } # $networks as $network
        } # $pros as $pro
    } # $providers as $provider

我已经搜索了互联网和Stack,但我猜我的查询还不清楚,因为回报与所需信息有很大不同。

非常感谢任何协助。

提前谢谢,皮特

1 个答案:

答案 0 :(得分:1)

为了表明进度,您需要一个服务器响应来逐步更新。

这不是不可能,但取决于您发送的数据,这是不值得的。服务器调用和响应成本很高,您应该尽量减少它们,因此除非您上传大量数据(如视频或音频文件),否则最好不要 来持续点击服务器。

要解决此问题,人们通常会使用微调器(表示无限期进度)。