javascript - Ajax XML 每 10 秒更新一次
问题描述
我制作了一个 Ajax XML 脚本,它将打开一个 XML 文件,找到一个属性值并将其显示在 DIV 中。由于 XML 文件经常更新,它将每 10 秒执行一次。
我遇到了一个问题,它会在几个小时后停止工作,我认为可能存在内存泄漏等问题,但我不确定,老实说,我什至不确定我是否正确循环它,我们将不胜感激。
function getXML() {
$.ajax({
type: "GET",
url: "assets/alerts.xml",
dataType: "xml",
cache: false,
success: function (xml) {
var fireXML = $(xml).find('template').eq(0).attr("name");
var lightXML = $(xml).find('template').eq(1).attr("name");
var fire = new Array();
fire['FIRE_CLEAR'] = "Clear";
fire['FIRE_BLUE'] = "Blue";
fire['FIRE_YELLOW'] = "Yellow";
fire['FIRE_RED'] = "Red";
var firealert = fire[fireXML];
$('#firealert').html(firealert);
var light = new Array();
light['GLC_CLEAR'] = "Clear";
light['GLC_BLUE'] = "Blue";
light['GLC_YELLOW'] = "Yellow";
light['GLC_RED'] = "Red";
var lightalert = light[lightXML];
$('#lightningalert').html(lightalert);
setTimeout(getXML, 1000);
}
});
}
解决方案
一个问题是您不处理故障,因此您需要添加以下内容:
error: function() {
setTimeout(getXML, 1000);
}
这将确保计时器在出错后重新启动。
推荐阅读
- php - PHP 表单电子邮件 - 发送前等待 x 小时
- sass - 在 Vue.js 中使用 vue.config.js 修复 sass-loader 错误
- python - 从一个容器运行命令到另一个容器
- c++ - 如何防止 gcc 预处理 shebang 行?
- excel - Excel VBA 和图表。Y轴标签问题
- cordova - 使用 Cordova startapp 打开 Gmail
- linux - 如何在 Vim 中添加自定义模板?
- c - 如何在C中使用具有相同名称的不同枚举
- python - 如何避免在数据框中进行永久替换?
- javascript - 检查一个动作是否在一分钟内重复五次(JS)