That's a great idea, Irakli, but unfortunately I don't believe we currently have such a mechanism. Jono would probably know best how hard that would be to implement.
- Atul On 2/16/09 1:53 PM, Irakli Gozalishvili wrote: > Thanks for the response :) > > Is there something like *suggestDelay *as well ?? > Cause actually I want to delay suggestion cause they are generated > from the server. > > > On Mon, Feb 16, 2009 at 10:14 PM, Atul Varma <[email protected] > <mailto:[email protected]>> wrote: > > Oops, there were a few problems with that commit, so I fixed them > here: > > > https://ubiquity.mozilla.com/hg/ubiquity-firefox/raw-file/93fd600b03e2/ubiquity/index.html#feed-parts/header/cmdutils.js > > - Atul > > > On 2/16/09 1:05 PM, Atul Varma wrote: >> Ack! Sorry for the inconvenience there... That kind of >> functionality has actually always been present in Ubiquity, but >> it wasn't documented! I've added some documentation just now: >> >> >> https://ubiquity.mozilla.com/hg/ubiquity-firefox/raw-file/08f1e8bbfd67/ubiquity/index.html#feed-parts/header/cmdutils.js >> >> Just search for the word 'previewDelay'. Basically, you can pass >> in an optional argument to CmdUtils.CreateCommand() that tells it >> how long a user should've stopped typing for before the preview >> function is called. >> >> Thanks for mentioning this! >> >> - Atul >> >> On 2/16/09 12:12 PM, gtdphp developers wrote: >>>> What I suggest to track the moment when user stops typing and then >>>> call the >>>> <noun>.suggest I think it would make a lot sense. >>>> >>> I've been wrapping my async-noun suggestions in timeouts, to prevent >>> rapid-fire repeat calls, as follows 3 seconds delay before a call with >>> a blank prompt, and 500ms between calls otherwise. Perhaps something >>> like this could go into CmdUtils: >>> >>> preview: function gtdlist_preview(aPblock, aNeedle) { >>> >>> if (this._ajaxTimer) { Utils.clearTimeout(this._ajaxTimer); } >>> if (this.xhr) { >>> this.xhr.abort(); >>> this.xhr = false; >>> } >>> if (aPblock == null) { return; } >>> >>> var prompt, timer, >>> that = this, >>> filter = this._filter(aNeedle); >>> >>> if (aNeedle.text === "") { >>> prompt = "Searching for all live next actions (enter more text >>> to narrow down the search)"; >>> timer = 3000; // allow 3000ms (=3s) before AJAX call if there's >>> no prompt string >>> } >>> else { >>> prompt = "Searching for<i>" + aNeedle.text +"</i> ..."; >>> timer = 500; // 500ms should be long enough between key presses >>> to lag JSON call reasonably, without undue delays or redundant calls >>> } >>> >>> aPblock.innerHTML = prompt; >>> this._ajaxTimer = Utils.setTimeout(realAsyncAjaxCall,timer); >>> } >>> >>> >> >> > > > > > > -- > Irakli Gozalishvili > Web: http://rfobic.blogspot.com/ > Phone: +31 614 205275 > Address: Taksteeg 3 - 4, 1012PB Amsterdam, Netherlands > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "ubiquity-firefox" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/ubiquity-firefox?hl=en -~----------~----~----~----~------~----~------~--~---
