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





--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to