gpt4 book ai didi

asp.net - 只执行最后一个调用的函数

转载 作者:行者123 更新时间:2023-12-04 06:57:57 26 4
gpt4 key购买 nike

简而言之,这是设置。
我有一张大 table 。每次单元格获得焦点时,都会对服务器进行异步调用(使用 PageMethods)并返回一些数据并更新页面中的信息框。
我编写了代码,可以使用箭头键在单元格之间导航。
当我通过几个单元格快速移动焦点以到达我想要的单元格时,就会出现问题。每个 get-focus 都会被执行,并且由于与服务器的通信需要大约半秒的时间,所以它变得非常烦人并且不是很用户友好。
理想情况下,我只想执行最后一个焦点事件。但是如何?我不知道哪个事件是最后一个,是吗?
想法,有人吗?

最佳答案

保罗是对的。

要在 Web 上执行此操作,您可以将当前的焦点事件与 javascript timing functions 结合起来。 setTimeout 和 clearTimeout:

var timer; // timer variable in scope for other functions

var onFocus = function() {
clearTimeout(timer);
timer = setTimeout("makePageMethodCall()", 500);
}

var makePageMethodCall = function() {
// make ajax call to your PageMethod function
}

在调用将调用服务器的方法之前,对 setTimeout() 的调用会创建半秒的等待时间。如果在此计时器到期之前发生另一个焦点事件,则 clearTimeout() 调用将在另一个计时器启动之前取消当前计时器。正如 Paolo 建议的那样,您可以尝试使用 500 毫秒的时间长度来找到最适合您情况的值。

关于asp.net - 只执行最后一个调用的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2312305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com