Hi David,

Thanks a lot that is really good input.  I really like the idea of using 
delegation and definitely creating the no conflict variable and the self 
invoked function for the on load event is a must.

It would be cool to create a set of prefabricated delegates (like your example) 
- that has all the effects from the original ajax framework.

My guess is some delegates could be abstract enough to work on different 
objects and then we could have the delegate objects extend a master delegate.

Have a nice weekend,

Johnny

On May 10, 2013, at 12:18 PM, David LeBer <dleber_wo...@codeferous.com> wrote:

> Some suggestions:
> 
> Use something like:
> 
> $j = JQuery.noConflict(); 
> 
> So there is absolutely no problem with mixing JQ and other libs.
> 
> You can also replace $(window).load(function(){... etc with $j(function(){...
> 
> I'd suggest namespacing your stuff:
> 
> var WOjax = WOjax || {};
> WOjax.AUC = {...
> 
> Don't use eval (it's eval), use: WOjax[type].initialize(element); instead.
> 
> Instead of appending inline js to initialize after an update, consider using 
> the success handler on the jQuery ajax update. 
> 
> Ultimately you could do something like (sorry this is not complete, do not 
> try to copy and paste it won't work, for example purposes only, yada yada 
> yada):
> 
>       WOjax.AUC.delegates = {}
> 
>        $j.ajax({
>            url: url,
>            //type: type,
>            async: isAsync,
>            //data: data,
>            //beforeSend: function (jqXHR, settings){}, //TODO
>            success: function(responseData, textStatus, jqXH) {
>                if (isUpdate) {
>                    $target.html(responseData);
>                } else {
>                    $target.replaceWith(responseData);
>                }
>                if (WOjax.AUC.delegates [options.delegate] !== 
> WOjax.AUC.delegates  && Delegates[options.delegate].success !== undefined) {
>                    WOjax.AUC.delegates [options.delegate].success($caller, 
> $target, self.handleFinish);
>                } else {
>                    self.handleFinish($caller, $target);
>                }
>            },
>            error: function(jqXHR, textStatus, errorThrown) {
>                options.errorThrown = errorThrown;
>                options.textStatus = textStatus;
>                if (WOjax.AUC.delegates[options.delegate] !== undefined && 
> WOjax.AUC.delegates[options.delegate].error !== undefined) {
>                    WOjax.AUC.delegates[options.delegate].error($caller, 
> $target, self.handleFinish);
>                } else {
>                    self.handleFinish($caller, $target);
>                }
>            }
>        });
>    },
>    handleFinish: function(caller, target) {
>        var self = WOjax.AUC;
>            $caller = $j(caller),
>            $target = $j(target),
>            options = $caller.data('wo');
> 
>        if (WOjax.AUC.delegates[options.delegate] !== undefined && 
> WOjax.AUC.delegates[options.delegate].finished !== undefined) {
>            WOjax.AUC.delegates[options.delegate].finished($caller, $target, 
> self.handleCompletion);
>        } else {
>            self.handleCompletion($caller, $target);
>        }
>    },
>    handleCompletion: function(_item, _uc) {
>        console.log("WOjax update complete");
>       // handle container init here?
>    }
> 
> So when something updates, users can specify the name of a delegate in their 
> options, and then create the delegate in WOjax.AUC.delegates that implements 
> 'success' or 'finished' or 'before'.
> 
> The delegate gets called with the caller, the target element and a call back 
> to finish the process.
> 
> // Demo Delegate
> WOjax.AUC.delegates.testDelegate = {
>    before: function (caller, container, callback) {
>        container.slideUp('slow', function () { callback(caller, container) });
>    },
>       success: function (caller, container, callback) {
>        container.slideDown('slow', function () {
>            container.effect("highlight", {}, 1000);
>            callback(caller, container);
>        });
>       },
>       finish: function (caller, container, callback) {
>               callback(caller, container);
>       }
> };
> 
> Sorry if this is sloppy or makes little sense. Typed into email. It's been a 
> while since I looked at it. It's great someone is looking at implementing 
> this, I'm just hoping this feedback helps so the foundation is solid and 
> primed for growth ;)
> 
> D
> 
> --
> David LeBer
> Codeferous Software
> 
> On 2013-05-10, at 4:47 PM, Johnny Miller <jlmil...@kahalawai.com> wrote:
> 
>> Cool.  Thanks Ken.
>> 
>> I tried out some stuff last night.
>> 
>> Basically I formatted the HTML for the AjaxUpdateContainer to be something 
>> like this:
>> 
>> <div data-wonder-id="AUC" data-wonder-options = "{'someKey': 
>> 'someValue'}">...</div>
>> 
>> Then I create an on load statement:
>> 
>> $(window).load(function() {
>> 
>>    $('[data-wonder-id]').each(function(index, element) {
>> 
>>        element = $(element);
>>        var type = element.attr('data-wonder-id');
>>        eval(type).initialize(element);
>> 
>>    });
>> 
>> });
>> 
>> Then in the AjaxUpdateContainer javascript object I added a method called 
>> initialize:
>> 
>>    initialize: function(element) {
>>        var options = jQuery.parseJSON(element.attr('data-wonder-options'));
>>        if(options.hasOwnProperty('minTimeout')) {
>>            AUC.registerPeriodic(
>>                element,
>>                options.hasOwnProperty('canStop') ? options.canStop : null,
>>                options.hasOwnProperty('stopped') ? options.stopped : null,
>>                options
>>            );
>>        } else {
>>            AUC.register(element.attr('id'), options);
>>        }
>>    },
>> 
>> In the event that the AUC is created as part of an Ajax Request I add a 
>> little javascript during appendToResponse:
>> 
>> <script>AUC.initialize($("#e_0_15_3_3_1"));</script>
>> 
>> So my thinking is that all the components that need to be initialized when 
>> the page gets loaded just need to implement initialize.  I guess I should 
>> create two options objects one for initialization options and one for ajax 
>> options?
>> 
>> Anyway for anyone is interested, I updated my example here: 
>> http://www.kahalawai.com/JQuery
>> 
>> best,
>> 
>> Johnny
>> 
>> 
>> 
>> On May 9, 2013, at 4:36 PM, Ken Anderson <kenli...@anderhome.com> wrote:
>> 
>>> I think this is awesome!  I'm definitely planning on using JQuery within 
>>> the next few months, and will happily contribute once I get to that point.
>>> 
>>> Ken
>>> 
>>> On May 9, 2013, at 6:19 PM, Johnny Miller <jlmil...@kahalawai.com> wrote:
>>> 
>>>> Hi Pascal,
>>>> 
>>>> I started working on a JQuery framework and I'm up to one component!
>>>> 
>>>> You can see it here: http://www.kahalawai.com/JQuery
>>>> 
>>>> I'm pretty busy but I think I could make one component a day.  I was 
>>>> wondering what people thought about a couple of questions I have:
>>>> 
>>>> 1. Should I use data attributes?  One thing I would like to do is not 
>>>> pollute the HTML with JavaScript code.  Now with my first example (the 
>>>> periodical updater) I'm not sure if that's possible i.e. When the page 
>>>> loads I can find the ajax update containers but what about an ajax update 
>>>> container that is returned from an ajax request?  But for a lot of the 
>>>> other components like ajax update link I could just register a trigger 
>>>> using the data attributes.
>>>> 
>>>> 2. Should I tie the framework to a look like JQueryUI or Bootstrap?  Some 
>>>> of the components like date pickers and modal containers need a default 
>>>> styling.  
>>>> 
>>>> Do you think I should keep on keeping on or has somebody already developed 
>>>> a framework they are about to release or is there a new better idea?
>>>> 
>>>> Aloha,
>>>> Mr. Johnny Miller
>>>> Web Development Manager
>>>> Kahalawai Media Company
>>>> Lahaina, HI 96761
>>>> tel: (808) 661-7962 | mobile: (808) 283-0791
>>>> website | e-mail   
>>>> 
>>>> On Apr 6, 2013, at 1:41 PM, Larry Mills-Gahl <elem...@gmail.com> wrote:
>>>> 
>>>>> There was some talk about directing some new development effort toward 
>>>>> jQuery in Wonder.
>>>>> I've been working on some bits in this framework and am coming to realize 
>>>>> that there are some organizational issues that could go a couple of 
>>>>> different directions and I was wondering if there are any forks out there 
>>>>> that are working on this that I might pull from and contribute to.
>>>>> 
>>>>> Among the questions that might benefit from some planning are about 
>>>>> multiple frameworks and dependencies. Specifically, the ERJQueryMobile 
>>>>> framework has jQuery javascript resources and so does the ERJQuery 
>>>>> framework (and potentially ERJQueryUI if we decide to separate jQuery 
>>>>> from jQuery-UI … which is probably a good idea. Since mobile and UI both 
>>>>> depend on jQuery, would it make sense to load those from ERJQuery and 
>>>>> update the version handling so that one could load whatever version of 
>>>>> jQuery you need. 
>>>>> Essentially, making some loader classes in ERJQuery able to load the 
>>>>> right version from local resources or a CDN depending on the need. 
>>>>> 
>>>>> Anyway… there are a few design decisions that will affect how the 
>>>>> framework(s) interact and I wanted to know who else out there had done 
>>>>> work on this that I might contribute to.
>>>>> 
>>>>> Thanks.
>>>>> 
>>>>> 
>>>>> Larry Mills-Gahl
>>>>> elem...@gmail.com
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> ------------------------------------------------------------------------------
>>>>> Minimize network downtime and maximize team effectiveness.
>>>>> Reduce network management and security costs.Learn how to hire 
>>>>> the most talented Cisco Certified professionals. Visit the 
>>>>> Employer Resources Portal
>>>>> http://www.cisco.com/web/learning/employer_resources/index.html_______________________________________________
>>>>> Wonder-disc mailing list
>>>>> wonder-d...@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/wonder-disc
>>>> 
>>>> _______________________________________________
>>>> Do not post admin requests to the list. They will be ignored.
>>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>>>> Help/Unsubscribe/Update your Subscription:
>>>> https://lists.apple.com/mailman/options/webobjects-dev/kenlists%40anderhome.com
>>>> 
>>>> This email sent to kenli...@anderhome.com
>>> 
>> 
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/webobjects-dev/dleber_wodev%40codeferous.com
>> 
>> This email sent to dleber_wo...@codeferous.com
> 


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to