这是一个非常基本的JavaScript问题,可能重复,但我不知道答案!
我的代码如下:
function userlist_change(myval, function_type) {
// relatively slow code involving Ajax call
// based on Ajax results, change some client-side stuff
}
$("#subjectlist").change(function() {
userlist_change($("#subjectlist").val(), change );
}).change();
$("#subjectlist").keypress(function() {
userlist_change($("#subjectlist").val(), keypress );
});
我的问题是,如果调用.change()
事件,userlist_change
函数就会启动,而且速度相对较慢。如果用户再次更改列表(例如通过键入),我的代码将等待userlist_change
完成,然后使用新值重新启动它。
这在UI中看起来很奇怪,因为任何事情都可能需要几秒钟的时间才能更改客户端——有时第一次调用的结果只有在用户已经进行了第二次调用之后才会出现。
当触发.change()
或`keypress()事件时,是否有任何方法可以中断任何现有的userlist_change
进程?
[EDIT]理想的做法是用这个名称命令简单地杀死任何正在运行的函数——这可能吗?还是我真的要摆弄计时器?!