And while we're on this topic... throw in the ability to properly discern
which of two overlapping droppables should get the drop (based on zIndex I
would imagine) rather than just stopping at the first one that fits based
solely on coordinates. Think, windowed app...
I have my own fix in my stuff, but it's not entirely generic. This should be
part of the d&d system out of the box.
On 2/26/07, Thomas Fuchs <[EMAIL PROTECTED]> wrote:
>
>
> Heya,
>
> I'm all for an optional position cache, which should speed things up
> considerably.
>
> Note that it shouldn't be on by default, as we don't know what users
> do in the callbacks (if they manipulate the DOM, chances are the
> position cache gets invalidated). There should also be a
> "invalidatePositions()" call somewhere to accomodate user-defined
> callbacks, so you can have the cache and the callbacks.
>
> Note that this shouldn't be that difficult to implement-- anyone
> wants to tackle this?
>
> Best,
> Thomas
>
> Am 26.02.2007 um 18:20 schrieb Tom Gregory:
>
> >
> > Lazy Draggable creation will speed your page load time, but not drag
> > time. As I said, laggy dragging is likely due to the number of
> > droppables being checked every mouse move.
> >
> > I've been told JQuery gets around the problem by caching the position
> > of all droppables at the start of the drag, so the pos isn't
> > calculated each iteration. This is a bit troublesome in S.a.us,
> > because the default Sortable behavior moves droppables around. I've
> > been meaning to attempt a position caching scheme, but haven't had
> > time.
> >
> > Another optimization that might be useful in S.a.us (a very brief
> > code check suggests this hasn't been implemented), is to begin
> > checking each droppable beginning with the droppable the draggable
> > was last over. This could be extended (and I know this hasn't been
> > implemented in S.a.us) to "spiral" out, by checking droppables
> > closest in the DOM tree to the most recent Droppable. These might be
> > easier to implement than caching.
> >
> > Peter's solution is complicated, and doesn't work well for draggables
> > of an arbitrary size or with text in the click area. (He may
> > disagree.) You can simplify by utilizing the native mouse event
> > triggered droppables (mouseenter, etc.) if you move your draggable
> > out from under your cursor, but this can be a bit jarring to the user.
> >
> > Yes, it's something that needs to be addressed in the library.
> >
> >
> > TAG
> >
> > On Feb 26, 2007, at 10:04 AM, Jean-Philippe Encausse wrote:
> >
> >>
> >> Well,
> >>
> >> I have implemented the lazy Draggable onmousedown, but it is not
> >> faster.
> >>
> >> It seems that:
> >>
> >> - Calling Droppables.add(li,{greedy:false,
> >> onHover:Ajax.Tree._onHover,
> >> onDrop:Ajax.Tree._onDrop});
> >>
> >> - Dragging is slow
> >>
> >> Is very slow ...
> >>
> >> Any Idea to did that with scriptaculous ?
> >> http://peter.michaux.ca/article/15 seems complicated .... ?
> >>
> >>
> >>
> >> On 2/23/07, Jean-Philippe Encausse <[EMAIL PROTECTED]> wrote:
> >>> Many thanks, that's really interesting !
> >>>
> >>> I gonna try the "mouse down" solution for Draggables that slow page
> >>> initialization then I will try to find a solution for Droppables.
> >>>
> >>> Jp
> >>>
> >>>
> >>> On 2/22/07, Tom Gregory <[EMAIL PROTECTED]> wrote:
> >>>>
> >>>> Your real slowdown is probably from the number of Droppables which
> >>>> must be checked on each mousemove. Various solutions (Peter will
> >>>> point out he "doughnut" concept) have been proposed, but none are
> >>>> part of the scriptaculous core.
> >>>>
> >>>> So far as lazily creating Draggables: some on this list create
> >>>> them
> >>>> on mouseover, which works nicely. In the past I've even waited
> >>>> until
> >>>> the mousedown, but that requires an extra bit of coding to
> >>>> immediately kick-start the draggable:
> >>>>
> >>>> onMouseDown: function (event) {
> >>>> var d = new Draggable('someDivId');
> >>>>
> >>>> //You'll need to add these two lines to start a draggable if
> >>>> mouse is already down
> >>>> d.initDrag(event);
> >>>> Draggables.updateDrag(event);
> >>>> }
> >>>>
> >>>>
> >>>> TAG
> >>>>
> >>>> On Feb 22, 2007, at 9:54 AM, Jean-Philippe Encausse wrote:
> >>>>
> >>>>>
> >>>>> Thanks,
> >>>>>
> >>>>> For this problem I solved it by setting a specific anchor to drag
> >>>>> (without links).
> >>>>> But Setting 300 anchors is slow...
> >>>>>
> >>>>> May be If I set the anchor Draggable only onMouseDown it would
> >>>>> works ?
> >>>>> It would be a lazy solution ?
> >>>>>
> >>>>
> >>>>
> >>>>>>
> >>>>
> >>>
> >>>
> >>> --
> >>> Jean-Philippe Encausse - R&D Jalios SA
> >>> Jp [at] encausse.net - http://www.encausse.com - http://
> >>> www.jalias.com
> >>> GTalk: jp.encausse [at] gmail.com - SMS: sms [at] jp.encausse.net
> >>> Mob: +33 6 82 12 56 99 Jalios: +33 1 39 23 92 83 Tel: +33 1 39 18
> >>> 90 15
> >>> Do it Once, Use it Twice ~ Do it Twice, Make It Once
> >>>
> >>
> >>
> >> --
> >> Jean-Philippe Encausse - R&D Jalios SA
> >> Jp [at] encausse.net - http://www.encausse.com - http://
> >> www.jalias.com
> >> GTalk: jp.encausse [at] gmail.com - SMS: sms [at] jp.encausse.net
> >> Mob: +33 6 82 12 56 99 Jalios: +33 1 39 23 92 83 Tel: +33 1 39 18
> >> 90 15
> >> Do it Once, Use it Twice ~ Do it Twice, Make It Once
> >>
> >>>
> >
> >
> > >
>
> --
> Thomas Fuchs
> wollzelle
>
> http://www.wollzelle.com
>
> questentier on AIM
> madrobby on irc.freenode.net
>
> http://www.fluxiom.com :: online digital asset management
> http://script.aculo.us :: Web 2.0 JavaScript
> http://mir.aculo.us :: Where no web developer has gone before
>
>
>
>
>
> >
>
--
Ryan Gahl
Application Development Consultant
Athena Group, Inc.
Inquire: 1-920-955-1457
Blog: http://www.someElement.com
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Spinoffs" 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/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---