31
Javascript Cross-browser por Davidson Fellipe

Javascript Cross-browser

Embed Size (px)

Citation preview

Page 1: Javascript Cross-browser

Javascript Cross-browserpor Davidson Fellipe

Page 2: Javascript Cross-browser

@davidsonfellipe

desenvolvedor frontend na globo.com

mestrando na puc-rio

co-organizador do rio.js

webinterativa, cesar, fitec e upe...

about me...

Page 3: Javascript Cross-browser
Page 4: Javascript Cross-browser

frontend+

engenharia

Page 5: Javascript Cross-browser

Progressive Enhancementvs.

Graceful Degradation

Page 6: Javascript Cross-browser

websites precisam ter exatamente o mesmo visual em todos os browsers?

http://dowebsitesneedtolookexactlythesameineverybrowser.com/

Page 7: Javascript Cross-browser

trazer fidelidade de layouté muito trabalhoso

seu madruga“

Page 8: Javascript Cross-browser

• técnica criado pelo Yahoo para informar quais browsers serão suportados

• baseado em 3 notas

• Grade A

• Grade C

• Grade X

Grade Browser Support

Page 9: Javascript Cross-browser

• técnica criado pelo Yahoo para informar quais browsers serão suportados

• baseado em 3 notas

• Grade A

• Grade C

• Grade X

Grade Browser Support

Page 10: Javascript Cross-browser

• técnica criado pelo Yahoo para informar quais browsers serão suportados

• baseado em 3 notas

• Grade A

• Grade C

• Grade X

Grade Browser Support

Page 11: Javascript Cross-browser

• experiência completa

• completamente testado

• fidelidade visual

• correção de bugs com alta prioridade

grade A

Page 12: Javascript Cross-browser

• browsers antigos

• experiência pobre

• minimo suporte

• normalmente apenas HTML e CSS funcional

grade C

Page 13: Javascript Cross-browser

• não testado

• pode se tornar um grade A no futuro

grade X

Page 14: Javascript Cross-browser

definição de sua gradevs

custos de produção

Page 15: Javascript Cross-browser
Page 16: Javascript Cross-browser
Page 17: Javascript Cross-browser
Page 18: Javascript Cross-browser
Page 19: Javascript Cross-browser

estratégias cross-browser

fonte: http://goo.gl/HKlxJ

Page 20: Javascript Cross-browser

JS development

livro do john resig - secrets of the javascript ninja

Page 21: Javascript Cross-browser

• boa suíte de testes

• feature simulation

• object detection

browser bugs...

Page 22: Javascript Cross-browser

object detection

window.addEventListener('deviceorientation', function(event) {var a;if(event.alpha){a = event.alpha;}else{a = event.x;}}, false);

Page 23: Javascript Cross-browser

feature simulationvar STYLE_NAME = (function(){

var div = document.createElement("div");div.style.color = "red";if ( div.getAttribute("style") )

return "style";if ( div.getAttribute("cssText") )

return "cssText";

})();

window.onload = function(){var style = document.

getElementById("test").getAttribute( STYLE_NAME );

};

Page 24: Javascript Cross-browser

• relembre o passado

• considere o futuro

• teste o presente

axioma by john resig

Page 25: Javascript Cross-browser

• seu código não pode afetar qualquer código externo

• evitando modificar valores de variaveis existentes

• baixo-acoplamento

• function prototypes (ou prototipos)

• qualquer área, já existente, que seu código modifica é uma potencial area de conflito

• testes automatizados!

external code e markup

Page 26: Javascript Cross-browser
Page 27: Javascript Cross-browser

• focar em experiencia rica nos browsers GRADE A

• versão HTML ou experiência reduzida em para os GRADE C

funcionalidades

Page 28: Javascript Cross-browser

• por API diferentes

• por bugs

regressões

Page 29: Javascript Cross-browser

• Internet Explorer: http://blogs.msdn.com/ie/

• Firefox: http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/

• WebKit (Safari): http://nightly.webkit.org/

browser releases

Page 31: Javascript Cross-browser

• http://mislav.uniqpath.com/2010/05/semicolons/

• http://dev.opera.com/articles/view/the-seven-rules-of-unobtrusive-javascrip/

• http://www.slideshare.net/nzakas/progressive-enhancement-20-conference-agnostic

• http://dowebsitesneedtolookexactlythesameineverybrowser.com/

• https://github.com/styleguide/javascript

• http://www.slideshare.net/jeresig/performance-improvements-in-browsers

• http://www.impressivewebs.com/browsers-tvs/

• livro secrets of the javascript ninja - john resig

referências