如果这是一个相当简单的答案我道歉,但我已经坚持了一段时间。目前我有一个XML文件,用户可以通过多种方式添加图像,音频文件和文本。如果文件变大,我希望页面需要进度条。
我找到了许多关于为上传,PHP文件和样式创建进度条的教程,但我还没有找到任何用于监视已读取和处理的XML文件百分比的内容。我一直试图让我的代码与this tutorial一起使用,但没有运气。
我简单的AJAX调用:
$(document).ready(function() {
$.ajax({
type: "GET",
url: xmlTitle,
dataType: "xml",
success: parseXML
});
});
parseXML是我读取XML文件的函数,然后在HTML上正确显示它。
基本上我希望让代码自动显示进度条,并且在成功时使进度条消失并显示内容。
如果我以错误的方式接近这一点,我也会打开任何其他建议。如果这是一个简单的问题,请再次抱歉,但感谢您的回复。
答案 0 :(得分:2)
这应该足够了:
$(document).ready(function() {
showProgressBar();
$.ajax({
type: "GET",
url: xmlTitle,
dataType: "xml",
success: parseXML
});
function parseXML(xml){
hideProgressBar();
...
}
});
如果你想用上传的实际进度来实际更新进度条,你将不得不使用xhr.upload.progress
事件和xhr.progress
事件,这两个事件都没有在jQuery中实现,因为那里没有办法使它们在IE< 10。
答案 1 :(得分:1)
如果您可以转移到websockets,我认为您可以在单个线程中管理数据传输。
如果您想要传统的ajax,我认为您需要一种类似于通常用于上传进度的方法:
http://phpmaster.com/tracking-upload-progress-with-php-and-javascript/
基本上,轮询服务器并询问它在传输中的距离,然后将其报告给用户。因此,您可以在同时轮询不同的小端点时获得大量的ajax请求。您的服务器将上传进度作为用户会话的一部分。