我从表单
向服务器发送文件 onSubmit
事件会启动setInterval
,它会向服务器询问上传的文件百分比,并使用JQuery显示它。
单击带有HtmlUnit(submit
)的submitButton.click()
按钮时,它会一直等待已回答的页面。所以我看不出阿贾克斯得到了什么。
NicelyResynchronizingAjaxController()
不起作用。
waitForBackgroundJavaScript()
不起作用。
我在click()
之前创建了一个子线程来尝试检查ajax正在接收什么,但它看起来也在等待表单操作。
我怎么能同时得到两个答案?有任何想法,知道我需要等多久?
提前谢谢
既然你要求它,但实际代码非常复杂,我将写一个简单的例子。
这是主要的HTML代码
<html>
<body>
<script>
function Upload() {
setInterval("waitProcess('x')", 2500);
}
function waitProcess(uid) {
$.get('x2.php?id='+uid, function(data) {
$("#t").val( $("#t").val() + "\n" + data );
});
}
</script>
<form action="x3.php" onSubmit="Upload();">
<input type="file" name="file">
<input id="boton" type="submit" value="Transfer it" />
</form>
<textarea id="t"></textarea>
</body>
</html>
如您所见,文件按表单上传。我使用异步AJAX请求来查看已上载文件的百分比。我只是使用<textarea>
来显示示例答案。
我想要的HtmlUnit代码是继续阅读WebClient
中的当前HTML以查看是否已通过Ajax请求更新<textarea>
。但是在表单上传文件时会阻止WebClient
。
答案 0 :(得分:0)
我担心您遇到HtmlUnit的问题。 Asnc请求目前并不是真正的异步。 请为此开一个问题;如果可能的话,提供一些示例代码。
顺便说一句:是表单提交完成的文件上传,还是异步请求?