我对 JS 有点陌生,我正在尝试考虑在我正在处理的应用程序中设计一些异步交互的最佳方法。
我有一个与一些 API 支持的实时数据相关的记录列表。我向用户显示这些记录的列表,用户可以选择他们想要查看更多信息的特定记录。我通过 ajax 调用从 API 加载这些附加数据。
为了使这成为一个更真实的例子,假设我拥有的是一个股票列表。我知道每只股票的名称和昨天的收盘价。每个股票名称旁边都有一个复选框,如果用户选中此框,它会在图表上绘制过去一年的股票历史价格。
当用户在途中选择一只股票时,行为很简单。我针对一只股票的历史数据发送了一个 API 请求,并将其绘制在图表上。
但是,用户可能会一次选择一堆股票,或者快速连续地选择。我不想连续发出 10 或 20 或 50 个请求,我想发出 10 或 20 或 50 个股票历史的请求。
假设我的应用程序有一个事件监听器,当复选框被切换时,它会查找股票历史记录,如下所示:
$('input.stock_toggle').change( function(event){
var symbol = $(this).data('symbol');
lookupStockHistory(symbol);
});
我如何定义一个lookupStockHistory
函数或其他类型的事件侦听器等,它会等待一秒钟并汇集所有传入的事件以发送单个请求而不是连续触发多次?