Re: Need advice for acting on only the last onkeyup event in a series
Available news archives: comp.lang.tcl - comp.lang.python - comp.security.firewalls - sci.crypt - comp.lang.php - comp.lang.javascript
Google
 
Web news.hping.org


comp.lang.javascript archive

Re: Need advice for acting on only the last onkeyup event in a series

From: Stephen Chalmers <ignoring@lycos.co.uk>
Date: Tue Jan 31 2006 - 04:07:42 CET

john.lum@gmail.com wrote:
> My overall objective is to create something akin to Google Suggest,
> where a query is done in response to changes in a text field presented
> to the user.
>
> I've got things working using the onkeyup event and some AJAX
> techniques, but I am troubled by one thing: the more characters that
> are entered, the slower the interface is to settle down, because a
> discrete lookup is done each time the field changes by a single
> character.
>
> What I'd prefer is to define a time window (say, n = 500ms) and alter
> my code so that it ignores the onkeyup events until at least n ms has
> elpased since the last event. I've tried various approaches using
> setTimeout, and I'm unable to come up with a working solution to what
> seems like a straightforward problem. Various Googlings have not given
> me any love, which makes me suspect I'm searching for the wrong things.
>
> Any advice on the best way to achieve this "ignore onkeyup until at
> least n ms has elapsed since the last field change" would be greatly
> appreciated. Alternative approaches are also welcome.
>
> Thanks,
> John

Did you try something like this?:

var ready=true;

function readText() //keyup handler
{
  if(ready)
  {
   ready=false;
   setTimeout("ready=true", 500);
   
   // your processing here
   
  }
}

-- 
S.C.
Received on Tue Feb 7 21:28:19 2006