Javascript PHP如何在HTML代码中刷新ProgressBar?
我在index.html中有一个表单,在提交时调用jQuery函数。 此jQuery函数执行AJAX请求以运行PHP脚本 我希望PHP脚本与HTML交互(目标是刷新进度条) 我的问题是,在使用AJAX运行PHP脚本时,它是在后台执行的。事实上,我不想在PHP处理过程中刷新页面 我画了一幅画。Javascript PHP如何在HTML代码中刷新ProgressBar?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我在index.html中有一个表单,在提交时调用jQuery函数。 此jQuery函数执行AJAX请求以运行PHP脚本 我希望PHP脚本与HTML交互(目标是刷新进度条) 我的问题是,在使用AJAX运行PHP脚本时,它是在后台执行的。事实上,我不想在PHP处理过程中刷新页面 我画了一幅画。 我怎样才能做到这一点呢?我想你的意思是进度条应该通过上传过程来填充。你可以这样做 $.ajax({ xhr: function() { var xhr = new window.X
我怎样才能做到这一点呢?我想你的意思是进度条应该通过上传过程来填充。你可以这样做
$.ajax({
xhr: function() {
var xhr = new window.XMLHttpRequest();
// Upload progress
xhr.upload.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
$('#progress').text(percentComplete + '%').css('width', percentComplete + '%');
}
}, false);
// Download progress
xhr.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
$('#progress').text(percentComplete + '%').css('width', percentComplete + '%');
}
}, false);
return xhr;
},
type: 'POST',
url: "/",
data: {},
success: function(data){
// Do something success-ish
}
});
我想你的意思是进度条应该通过上传过程来填充。你可以这样做
$.ajax({
xhr: function() {
var xhr = new window.XMLHttpRequest();
// Upload progress
xhr.upload.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
$('#progress').text(percentComplete + '%').css('width', percentComplete + '%');
}
}, false);
// Download progress
xhr.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
$('#progress').text(percentComplete + '%').css('width', percentComplete + '%');
}
}, false);
return xhr;
},
type: 'POST',
url: "/",
data: {},
success: function(data){
// Do something success-ish
}
});
您是否有机会上传文件?请提供有关进度条的信息。进度条的用途是什么?PHP代码是在服务器上执行的(所以在它到达浏览器之前)。它不能告诉你的浏览器在移动中做任何事情,因为它已经生成了一次,仅此而已。您可以将进度存储在服务器上,然后重试。看到这里:@kau_lin Yes到PHP进程结束时,我向用户上传了一个PNG文件。您可以从
PHP
向AJAX
的成功回调发送json
响应,并更新前端部分的progressbar,不是像你现在这样在PHP
中。你是否有机会上传文件?提供有关进度条的信息。进度条的用途是什么?PHP代码是在服务器上执行的(所以在它到达浏览器之前)。它不能告诉你的浏览器在移动中做任何事情,因为它已经生成了一次,仅此而已。您可以将进度存储在服务器上,然后重试。看到这里:@kau_lin Yes到PHP进程结束时,我向用户上传了一个PNG文件。您可以从PHP
向AJAX
的成功回调发送json
响应,并更新前端部分的progressbar,不是像你现在这样在PHP
中。那么PHP如何在你的脚本中告诉pourcentage呢?它将在不使用PHP的情况下工作,因为我认为这些数据将通过请求发送。您可以在这里获得更多信息是的,但在我的情况下,我没有上传文件,我将URL传递给PHP,然后等待它返回进程的进度。“让一个单独的AJAX请求反复检查日志文件,以获取脚本的当前状态”->,这不是有点重吗?抱歉,我误解了您。因此,在这种情况下,您可以在curl过程中保存会话中进程的百分比。然后可以使用ajax从会话中获取这些信息。但我不知道是否有一个“更干净”的解决方案,以及PHP如何在脚本中告诉pourcentage?它将在不使用PHP的情况下工作,因为我认为这些数据将通过请求发送。您可以在这里获得更多信息是的,但在我的情况下,我没有上传文件,我将URL传递给PHP,然后等待它返回进程的进度。“让一个单独的AJAX请求反复检查日志文件,以获取脚本的当前状态”->,这不是有点重吗?抱歉,我误解了您。因此,在这种情况下,您可以在curl过程中保存会话中进程的百分比。然后可以使用ajax从会话中获取这些信息。但我不知道是否有“更清洁”的解决方案