如何使用AJAX / jQuery创建用于下载XML内容的进度条?

如果这是一个相当简单的答案,我道歉,但我已经坚持了一段时间。 目前我有一个XML文件,用户可以通过多种方式添加图像,音频文件和文本。 如果文件变大,我希望页面需要进度条。

我发现了很多关于为上传,PHP文件和样式创建进度条的教程,但是我没有找到任何用于监视已读取和处理的XML文件百分比的内容。 我一直试图让我的代码与本教程一起工作,但没有运气。

我简单的AJAX调用:

$(document).ready(function() { $.ajax({ type: "GET", url: xmlTitle, dataType: "xml", success: parseXML }); }); 

parseXML是我读取XML文件的函数,然后在HTML上正确显示它。

基本上我想让代码自动显示进度条,并且在成功时使进度条消失并显示内容。

如果我以错误的方式接近这一点,我也会对任何其他建议持开放态度。 如果这是一个简单的问题,请再次抱歉,但感谢您的回复。

这应该足够了:

 $(document).ready(function() { showProgressBar(); $.ajax({ type: "GET", url: xmlTitle, dataType: "xml", success: parseXML }); function parseXML(xml){ hideProgressBar(); ... } }); 

如果你想用上传的实际进度来实际更新进度条,你将不得不使用xhr.upload.progress事件和xhr.progress事件,这两个事件都没有在jQuery中实现,因为没有xhr.progress解决方法他们在IE <10工作。

如果您可以转移到websockets,我认为您将能够在单个线程中管理数据传输。

如果你想要传统的ajax,我认为你需要一种类似于通常用于上传进度的方法:

http://phpmaster.com/tracking-upload-progress-with-php-and-javascript/

基本上,轮询服务器并询问它在传输中的距离,然后将其报告给用户。 因此,您可以在同时轮询不同的小端点时获得大量的ajax请求。 您的服务器将上载进度作为用户会话的一部分。