piątek, stycznia 14, 2011

Ciekawe

  1. Operacje na składnicy certyfiaktów w .NET - http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509store.remove(v=vs.80).aspx
  2. Crockford o bezpieczeństwie JS i HTML5 - http://answers.oreilly.com/topic/1483-doug-crockford-discusses-javascript-html5-security-issues/
  3. Kolejna ciekawa ksiażka - JQuery cookbook a tam wykorzystanie .data() – “How to attach objects and data to DOM with jQuery.data to avoid memory leak issues” np. do uniknięcia przecieków pamięci i ustawienia zegara
  4. Stosowanie Module pattern w jS – do organizaowania kodu - http://answers.oreilly.com/topic/2177-how-to-use-the-module-pattern-in-javascript/
  5. Obok jQ jest wiele innych frameworków: The following won't help you much to make a choice, because it's just a plain list of options--but at least it will help you see some of the most popular options. I copied this list right from Chapter 19 of Learning PHP, MySQL, and Javascript by Robin Nixon.
    1. ASP.NET Ajax Framework, http://asp.net/ajax/
    2. Clean Ajax, http://sourceforge.n...ects/clean-ajax
    3. Dojo Toolkit, http://dojotoolkit.org
    4. jQuery, http://jquery.com
    5. MochiKit, http://mochikit.com
    6. MooTools, http://mootools.net
    7. OpenJS, http://openjs.com
    8. Prototype, http://prototypejs.org
    9. Rialto, http://rialto.improv...logies.com/wiki
    10. script.aculo.us, http://script.aculo.us
    11. Spry Framework, http://labs.adobe.co...chnologies/spry
    12. YUI, http://developer.yahoo.com/yui
  6. Np. Rico - http://rialto.improve-technologies.com/wiki/ – ze wsparciem dla GWT, Javy i .NET
  7. Kolejne sztuczki z jQ na podstawie artykułu na O’Reilly na temat książki JQuery Pocket book:
    1. zamiast $(documentt).ready() można stosować $().
    2. Aby stworzyć element można skorzystać z $(tagname) a jako drugi parametr przekazać obiekt zawierający właściwości przekazane do attr(), dodatkowo jeżeli te właściwości będą maiły nazwy atrybutów DOM to zostaną zarejestrowane jako handlery:
      ar image = $("<img>", {
                        src: image_url,
                        alt: image_description,
                        className: "translucent_image",
                        click: function() {$(this).css("opacity", "50%");},
                        css: { border: "dotted red 3px" }
                     });

  8. Procesory zdarzeń to np. click() lub change(), jest bardziej ogólny procesor (handler) zwany bind() np.
$('a').bind('mouseover.myMod', f);


  1. Wtedy możliwe jest:
// Unbind all mouseover and mouseout handlers
// in the "myMod" namespace
$('a').unbind("mouseover.myMod mouseout.myMod");
// Unbind handlers for any event in the myMod namespace
$('a').unbind(".myMod")


  1. Mozliwe jest też kolejkowanie animacji:
    $("img").fadeIn(500)
            .animate({"width":"+=100"},
                     {queue:false, duration:1000})
            .fadeOut(500);
    I na koniec sprytne wykorzystanie zdarzeń startu i zakończenia operacji AJAX do włączania i wyłączania elementu animacji:
    $("#loading_animation").bind({
        ajaxStart: function() { $(this).show(); },
        ajaxStop: function() { $(this).hide(); }
    });
    A to wszystko pochodzi z serwisu O’Reilly – answers


    Stosowanie przestrzenie nazw w JS, nic trudnego:

    Since these are home-made javascript libraries, this isn't too hard.
    You can assign an object to a variable, and combine your libraries within this object. You can repeat the process within the object to achieve multiple levels as well.
    e.g.
    var mycompany = {
    'utilities': {
    'removeEmail': function(string) {
    // Code to remove all email addresses
    return newString;
    },
    },
    'display': {
    'defaultSize: [100, 100],
    'showBox': function(x, y, sizex, sizey) {
    // do some stuff create stylized div for box, etc.
    return boxDivElement;
    },
    },
    'var1': 'foo is at foo@bar.com',
    'func1': function() { return 'bar is at bar@foo.com'; }
    }
    // Example usage
    var myString1 = mycompany.var1;
    var myString2 = mycompany.func1();
    var someFunction = mycompany.func1;
    var myString3 = someFunction(); // myString3 == mySting2;
    var parsedString = mycompany.utilities.removeEmail(mystring1);
    var divBox = mycompany.display.showBox(400, 500, 200, 300);
    divBox.innerHTML = parsedString;
    Now, I haven't actually tested the above code, so there may be numerous errors, and even some basic JS logic problems as it's been a little while since I wrote any functional JS, but the general theory is sound.
    P.S. there's more complex and complete ways to get namespaces in JS, but this should suffice for combining a few home-made libraries.

Brak komentarzy: