【发布时间】:2020-02-20 09:47:33
【问题描述】:
之前,在我的表重新加载新数据后,我已经实现了超时。在调用 ajax 后,我在如何更新我的 dom 时遇到了麻烦,因为我正在分析 webapp 之上开发前端 js。我已经找到了一个使用超时的解决方案,它将在刷新后加载 dom,但我不确定这是否是最佳做法,因为我必须预设时间并且不同的视图会有不同的查询和渲染时间。
$( document ).ajaxSuccess(function( event, xhr, settings ) {
setInterval(function(){
let update = d3.selectAll("#" + arcapi.chartId() + ' tbody td')
update.filter(function(){
if(this.innerHTML === 'Tier 2'){
return true;
}
}).style('background-color','green');
}, 2000);
});
注意:我无法在 ajaxComplete 之后直接从 ajax 代码更新,因为我没有访问 ajax 文件的权限。这是迄今为止我在 8 天内获得的最佳解决方案。请让我知道您的意见和意见。
【问题讨论】:
-
最佳实践是挂钩完成事件。在您自己的 $.ajax 调用中,它将是
.done/success:。在第 3 方库中,该库应为此提供一种机制,例如引发事件。听起来您的第 3 方库不提供此活动,因此您不能遵循“最佳实践”,而必须采用“在这种情况下的最佳做法”。
标签: javascript jquery ajax d3.js