我越来越熟悉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,但我猜我的查询还不清楚,因为回报与所需信息有很大不同。
非常感谢任何协助。
提前谢谢,皮特
答案 0 :(得分:1)
为了表明进度,您需要一个服务器响应来逐步更新。
这不是不可能,但取决于您发送的数据,这是不值得的。服务器调用和响应成本很高,您应该尽量减少它们,因此除非您上传大量数据(如视频或音频文件),否则最好不要 来持续点击服务器。
要解决此问题,人们通常会使用微调器(表示无限期进度)。