Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JavaScript Não-Obstrutivo

JavaScript Não-Obstrutivo

Avatar for Marcelo Fraga

Marcelo Fraga

January 29, 2013
Tweet

More Decks by Marcelo Fraga

Other Decks in Programming

Transcript

  1. O QUE É? Um conjunto de princípios para uma escrita

    de JavaScript acessível, de fácil manutenção.
  2. CARACTERÍSTICAS • Sempre aplicar JavaScript em arquivos externos. • Nunca

    utilizar JavaScript diretamente no documento. • Usar JavaScript como incremento, não como uma funcionalidade segura. • A página continua sendo utilizável, mesmo sem o suporte a JavaScript.
  3. EXEMPLO Uma vez que a página foi carregada, o JavaScript:

    • Encontra todos os labels ligados a um campo de texto. • Move o texto do label para o campo de texto associado. • Esconde os labels. • Estabelece eventos para remover o texto descritivo quando o campo está em foco.
  4. O JAVASCRIPT $('label').each(function() { var $label = $(this), $input =

    $('#' + $label.attr('for')), initial = $label.hide().text(); $input.focus(function() { if ($input.val() == initial) { $input.val(‘’).css('color', '#000'); } }).blur(function() { if (!$input.val()) { $input.val(initial).css('color', '#aaa'); } }).css('color', '#aaa').val(initial); });
  5. A IMPLEMENTAÇÃO GARBER-IRISH SITENAME = { common: { init: function()

    { // code } }, users: { init: function() { // code }, show: function() { // code } } };
  6. A IMPLEMENTAÇÃO GARBER-IRISH UTIL = { exec: function(controller, action) {

    var namespace = SITENAME, action = (action === undefined) ? “init” : action; if (controller && namespace[controller] && typeof(namespace[controller][action] == “function”)) { namespace[controller][action](); } }, init: function() { var $body = $(document.body), controller = $body.data(‘controller’), action = $body.data(‘action’); UTIL.exec(‘common’); UTIL.exec(controller); UTL.exec(controller, action); } };