我想制作一个进度条来处理服务器中的一些数据。我不想重新加载页面或转到另一个页面,所以我使用了 ajax 请求:
$.ajax({
type: "POST",
url: "/process.php",
dataType: "script",
data: "foo=bar",
success: function(data){
}
});
此请求返回一些代码,例如:
set_progress(50);
在分块模式下一遍又一遍。但是ajax等到请求完成然后返回响应数据!所以这没有用:(
之后我测试了另一种方式。我将 iframe 用于常规的 http 表单。
<form action="/process.php" method="post" target="iframe" id="formid">
<input type="hidden" name="foo" value="bar" />
</form>
<iframe name="iframe"></iframe>
甚至这种方法也不起作用:(((它将在请求结束时运行所有javascript代码而不是抛出请求!
我知道完成这项工作的常规工作是将用户发送到另一个页面,然后发送分块数据,例如:
<script type="text/javascript">setProgress(percent);</script>
但我更喜欢不使用这种方式;)有什么办法可以做到这一点?