作者tonilin (小强)
看板Ajax
标题[问题] 怎麽预防使用者按太快
时间Fri Dec 25 22:57:48 2009
现在有两个function
function a 会隐藏 A B C三个元素~一段时间间隔~接着显示A元素
function b 会隐藏 A B C三个元素~一段时间间隔~接着显示B元素
如果使用者按太快
a,b会一起执行,然後会变成A B C三个元素被隐藏~接着A B元素都显示
就达不成我原先想要的功能了
请问要怎麽预防这种情形?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.233.166
1F:推 neversay:做locking flag,进去function先锁起来 12/25 23:01
2F:→ neversay:另一个function检查同样的flag,若是true就不执行了 12/25 23:02
3F:→ tonilin:嗯嗯我有想过这个方法,不知道还有没有更好的方法呢 12/25 23:16
4F:→ sjrom:onclick function跑的时候先assign onclick=null,跑完再 12/26 00:05
5F:→ sjrom:assign function回来...xd.. 12/26 00:05
6F:→ TonyQ:楼上这方法跟lock 差不多啊 XD 12/26 00:12
7F:→ TonyQ:这种问题除了点击後进入锁定(锁定的方法有很多种),应该没 12/26 00:13
8F:→ TonyQ:有没的模式可以解套了吧 , 毕竟这就是lock 的机制啊...@_@ 12/26 00:13
9F:→ sjrom:我"个人"认为差很大,因为锁源头,毕竟比另做flag方便.而且 12/26 00:31
10F:→ sjrom:如果不是按2下,而是重覆多次(滑鼠坏了吧.),function call 12/26 00:33
11F:→ sjrom:stack多进去几个,就还是有机会会破坏掉你的flag设定. 12/26 00:33
12F:→ sjrom:再机车一点的js optimizer的话也更有机会乱序排而破坏. 12/26 00:34
13F:→ sjrom:所以我想法是先断源头少一点call stack进来应该是有好处. 12/26 00:36
14F:→ sjrom:而且这作法也如Tony说的,也兼用lock 概念..浅见..xd 12/26 00:36
15F:→ tonilin:嗯嗯~我应该会选择用flag的方法吧,把onlick都拿掉太麻烦 12/26 01:12
16F:→ tonilin:了,谢谢你们的回答^^ 12/26 01:12