我不太确定如何说出搜索,或者用我想要的东西寻找什么。基本上,我想设置一个div来显示使用jQuery从post / get返回的数据,类似于windows命令提示符中的旧批处理文件。
function run_cache() {
$.get("/run_cache.php", function(data) {
$('#update_div').html(data);
});
return false;
}
这是基本代码。在run_cache.php里面它做了一些事情,然后回显了一些文字。我希望在回显后显示文本。现在简单的jQuery代码只会在脚本运行完毕后发布数据,并发布所有回显的数据。
有没有办法发布数据?就像,在php文件完成之前。
示例:
run_cache.php执行某些操作并回显'Set 1 Complete'。 div以“Set 1 Complete”更新。 run_cache.php执行其他操作,并回显'Set 2 Complete'。 div文本然后更改为“Set 2 Complete”。知道我的意思吗?
这可以在jQuery中做到吗?或者只有在获取/发布表单完成后才能发布数据?
答案 0 :(得分:1)
如果没有请求,您将无法将消息发送回客户端,这意味着您必须按步骤发出请求,以便能够在每个集合或“批处理”时更新页面完成。第一步是要求找出需要完成多少“步骤”。然后进行单独调用以请求执行步骤...递归调用相同的函数来执行下一步。
var set_count = 0;
function get_set_count() {
$.get("/get_set_count.php", function (data) {
// populate the set_count variable from the returned data. could be xml or json.
// your choice.
set_count = $(data).find('set_count').val();
if (set_count > 0) {
// kickoff the process, requesting set number 1.
run_cache(1);
} else {
$('#update_div').html("No sets found.");
}
});
return false;
}
function run_cache(set) {
var url = "/run_cache.php?set=" + set;
$.get(url, function (data) {
$('#update_div').html(data);
if (set < set_count) {
// recursively request the next set.
run_cache(set + 1);
}
});
return false;
}
现在我考虑一下 - 你可以通过让run_cache.php返回两个数据:刚刚完成的集合和下一个集合数字来摆脱初始的get_set_count()调用。
答案 1 :(得分:0)
您可能想尝试使用jQuery's AJAX functions这样的内容(数据的格式取决于服务器发回的内容):
function run_cache() {
$.ajax({
url: '/run_cache.php',
beforeSend: function() {
// do something before sending data to server
},
success: function(data) {
$('#update_div').html(data);
}
});
}