如何在xhttp对象从XML获取数据时显示进度计数器
How to show a progress counter while a xhttp object fetch data from XML?
我有一个带有脚本的HTML页面,xhttp对象从XML文件中读取节点值并写入它们。在读取所有必需的节点之前,我希望显示一个以百分比(read_rows/total_rows * 100)
表示的数字进度指示器。但由于整个过程都在一个线程上运行,我无法完成这一任务。对我该怎么做有什么建议吗?
以下是一些javascript代码-
function fetch(xml_file, index) {
//create xhttp object, read xml, get nodeValue of element "VALUE" etc...
xhttp = new XMLHttpRequest();
xhttp.open("GET", xml_file ,false);
xhttp.send(null);
xmlDoc = xhttp.responseXML;
data = xmlDoc.getElementsByTagName("VALUE")[index].childNodes[0].nodeValue;
document.write(data);
// CALCULATE PROGRESS AND WRITE TO SOME OVERLAY DIV...
}
以下是HTML-的一部分
<p><script>fetch(data_file, index); index++;</script></p>
<p><script>fetch(data_file, index); index++;</script></p>
<p><script>fetch(data_file, index); index++;</script></p>
当每个<p></p>
都被填满时,我想在某个地方显示进度,比如叠加DIV。我如何同时做到这一点?
通过使用回调函数,我可以在xhttp对象从XML文件读取数据时显示进度。
我已将代码更改为-
function fetch(xml_file, index) {
//create xhttp object, read xml, get nodeValue of element "VALUE" etc...
xhttp = new XMLHttpRequest();
xhttp.open("GET", xml_file ,false);
xhttp.send(null);
xmlDoc = xhttp.responseXML;
data = xmlDoc.getElementsByTagName("VALUE")[index].childNodes[0].nodeValue;
document.write(data);
progress(index); //CALLBACK FUNCTION
}
function progress(index) {
document.getElementById("ProgressString").innerHTML = Math.round((index/358)*100) + "% complete"; // 358 nodes were to be read
}
相关文章:
- 如何将json数据显示为html
- 解耦按钮(两个按钮同时切换),并根据数据显示相应的按钮
- 将json提要数据显示为html
- 使用Ajax Get方法将数据显示到特定元素中
- 如何将数据显示为线性highChart
- Json显示来自网站的数据显示仅未定义
- 使 ajax 请求和成功数据显示在 id <选择>选择>部分中
- 在按钮单击时将图像URL数据显示到弹出框中,而无需禁用背景
- 如何在循环中将 json 数据显示为 HTML
- 如何使用javascript在html中将firebase数据显示为列表
- PHP同时循环数组数据显示到javascript中
- 原始图像数据显示
- 如何在 y 轴上将数据显示为 KB、MB、GB、TB
- Ajax 数据显示在包含 10 行的表中
- 如何让 Mathjax.js 与 ANCII.js 将附加的 json 数据显示为正确的公式
- 调用 Worklight 适配器并将列表视图中的 JSON 数据显示为字符串
- Jquery/Javascript Datatables : 如何在行选择时将行数据显示到 html 文本字段中
- 双击 td 时,如何在警告框中将数据库中的数据显示为 html 表
- 日期之间的数据显示所有头
- 如何使用模板中的数据显示谷歌地图