我不确定我要问的是否可能或正确的做事方式,但这里有。
我有一个网页,它使用 AJAX 从服务器加载一些数据并直观地显示它。用户可以选择使用页面上的两个按钮之一来“滚动”通过按周过滤的数据。这些按钮的代码类似于:
$("#leftButton").click(function () {
clearCurrentlyDisplayedData();
changeFilter(1); //Or -1, or whatever.
loadAndDisplayData();
}
在这个(简化的)示例中,loadAndDisplayData() 将使用 AJAX 调用来获取此数据,然后在请求完成时显示它,例如:
$.get(
"web/service/address",
function (data, textStatus, jqXHR) {
//Display the data here
});
但是,当用户单击箭头滚动数据时,会出现问题。如果快速连续单击按钮两次,则将显示两周的数据,彼此重叠。
在收集数据之前,我不想禁用按钮 - 因为数据收集和显示确实需要一点时间,这会扼杀用户快速浏览网站的能力,并且很快就会变得烦人。
当用户单击其中一个按钮以防止加载两组数据时,是否可以终止任何当前正在执行的脚本或 AJAX 调用(或由于这些调用而调用的函数)?有没有其他方法可以解决这个问题?