Hi Shawn,

On the clueTip end of things, there shouldn't be any delay, really, because the code isn't doing a whole lot other than positioning the tooltip. One thing you could try is to pull out the reference to the hoverIntent plugin in the page's <head>. I know you set all the hoverIntent params to 0, but this might be a good sanity check. The ajax stuff is just using jQuery's built-in $.ajax() method.

Not sure whether this would be feasible in your situation, but you can also grab clueTip contents from an element on the current page by setting "local: true".

The onShow function could be made more efficient, but I doubt this will affect the delay:
 onShow : function (ct, c) {
  $("#dayDetailTip").children('.taskdetail')
    .unbind("click")
    .click(function () {
      var id = this.id.toString().split("-")[1];
      task.edit(id);
      $("#cluetip-close").click();
  })
    .filter(':even').css({backgroundColor: '#ddd'}).end()
    .filter(':odd').css({backgroundColor: '#fff'}).end();
}


Hope that helps a bit.


--Karl
_________________
Karl Swedberg
www.englishrules.com
www.learningjquery.com



On Jan 2, 2008, at 10:39 PM, McLars wrote:


I don't know anything about the clueTip. Hopefully, someone else can
help you with that. Are you sure Ajax is necessary, though?  You say
you want the application to be snappy (a laudable goal), but it sounds
like there is a bit of a speed hit with the database. So, even if you
get the Ajax to fire sooner, I'd think that could still make the
response slow--especially if your users are very remote.

It would probably feel more responsive if the tip info was preloaded.
If it takes too long to get the tip info while the server is building
the initial page, perhaps you could fire off an Ajax query for the
entire page's tips as soon as the DOM is ready. There will probably be
bit of a time while the user is reading the page before they start
hovering over stuff.

Overall, you can get more data out of a database faster in one chunk
rather than separate calls for each date. Unless you really have a lot
of dates on the page, it might be faster to just get them all at once.
For example, if you had a month calendar, that would only be 31 days
of data. Even a year's worth might not be bad if each record is small.
Since you're talking about tips, I'm guessing it isn't much. Ajax is
best suited for when there is either just too much data to load at
once or the data might change during the lifetime of the page. You are
right to focus on the user experience. Do what's best for them, not
what's cool to program.

If you wanted to get fancy, you could have the page load up with the
dates slightly grayed and then light them up as the data is loaded.
That way the users can start reading the page right away, and they can
see that activity is going on in the background.

Larry


On Jan 2, 4:28 pm, Shawn <[EMAIL PROTECTED]> wrote:
I'm seeing an odd delay before the Cluetip code fires. I'm wondering if
I have cluetip configured badly, or if the problem is elsewhere in my
code (most likely, but need to check...).  Here's the Cluetip code:

$(this).attr("rel", "xhr/dayDetails.cfm").cluetip({
   activation : "click",
   positionBy: "mouse",
   mouseOutClose: true,
   sticky: true,
   closePosition: "title",
   ajaxSettings : {
     type: "GET",
     data: "e=" + eid + "&sd=" + dt + "&d=" + dt
   },
   onShow : function (ct, c) {
$("#dayDetailTip").children(".taskdetail:even").css("background- color",
"#fff");
$("#dayDetailTip").children(".taskdetail:odd").css("background- color",
"#ddd");
$ ("#dayDetailTip ").children(".taskdetail").unbind("click").click(function
() {
                    var id = this.id.toString().split("-")[1];
                    task.edit(id);
                    $("#cluetip-close").click();
                  });
   }

});

What I'm seeing is a 1 or 2 second delay before my Ajax activity
indicator (via .ajaxStart() ) shows up.  SO, that would seem to mean
that nothing is happening for that 1 or 2 second period. I would assume
the Ajax via ClueTip would fire almost instantly??

I know it's only a second or two, but it makes the application feel
sluggish. The called Ajax page (dayDetails.cfm) already is doing stuff with the database that incurs a performance penalty. So This delay just adds to it. (And I'm looking at the SQL side of things to see if I can
speed it up.  Not promising though - it's a non-trivial task).

If it helps, I do have the hoverIntent plugin loaded (as well as a bunch more). I have tried setting the hoverintent delay to 0 with no effect.

Thanks for any tips.

Shawn

Reply via email to