9. Mais recentemente
A LibSAPO.js já é standalone
Wednesday, October 6, 2010
10. Mais recentemente
A LibSAPO.js já é standalone
Não é construída sobre outra library
Wednesday, October 6, 2010
11. Mais recentemente
A LibSAPO.js já é standalone
Não é construída sobre outra library
Pode usar alguns módulos externos
Wednesday, October 6, 2010
12. Mais recentemente
A LibSAPO.js já é standalone
Não é construída sobre outra library
Pode usar alguns módulos externos
Segue parte da API de Prototype
Wednesday, October 6, 2010
14. Porquê a LibSAPO.js ?
Orientada às necessidades do SAPO
Wednesday, October 6, 2010
15. Porquê a LibSAPO.js ?
Orientada às necessidades do SAPO
Não está tão dependente de libs third party
Wednesday, October 6, 2010
16. Porquê a LibSAPO.js ?
Orientada às necessidades do SAPO
Não está tão dependente de libs third party
Resolução de bugs mais rápida
Wednesday, October 6, 2010
17. Porquê a LibSAPO.js ?
Orientada às necessidades do SAPO
Não está tão dependente de libs third party
Resolução de bugs mais rápida
Adição de features on demand
Wednesday, October 6, 2010
19. Porque não um fork ?
Manutenção de código mais complexa
Wednesday, October 6, 2010
20. Porque não um fork ?
Manutenção de código mais complexa
Afastamento da library original
Wednesday, October 6, 2010
21. Porque não um fork ?
Manutenção de código mais complexa
Afastamento da library original
Dificuldade de integração de novas features
Wednesday, October 6, 2010
22. Porque não um fork ?
Manutenção de código mais complexa
Afastamento da library original
Dificuldade de integração de novas features
Difícil reaproveitar componentes
Wednesday, October 6, 2010
33. O namespace SAPO
Todos os módulos estão contidos neste namespace
Wednesday, October 6, 2010
34. O namespace SAPO
Todos os módulos estão contidos neste namespace
Variáveis globais declaradas: SAPO e s$
Wednesday, October 6, 2010
35. O namespace SAPO
Todos os módulos estão contidos neste namespace
Variáveis globais declaradas: SAPO e s$
Não há extensão do DOM e tipos primitivos,
excepto:
Wednesday, October 6, 2010
36. O namespace SAPO
Todos os módulos estão contidos neste namespace
Variáveis globais declaradas: SAPO e s$
Não há extensão do DOM e tipos primitivos,
excepto:
• Function.bindObj()
• Function.bindObjEvent()
Wednesday, October 6, 2010
37. bindObj e bindObjEvent
var obj = {
quant: 10,
add: function(){
alert(this.quant);
}
};
var add = obj.add;
add(); // undefined
var add = obj.add.bindObj(obj);
add(); // 10
Wednesday, October 6, 2010
38. bindObj e bindObjEvent
var obj = {
quant: 10,
add: function(msg){
alert(msg);
alert(this.quant);
}
};
var add = obj.add.bindObj(obj, "hello");
add(); // hello, 10
Wednesday, October 6, 2010
39. Como usar a LibSAPO.js ?
<script src="http://js.sapo.pt/SAPO/"></script>
<script
src="http://js.sapo.pt/SAPO/Utility/Dimensions/1.1/"></script>
<script
src="http://js.sapo.pt/SAPO/Component/Dialog/1.1/"></script>
<script>
(function(){
SAPO.Component.Dialog.info("hello !");
var Dialog = SAPO.Component.Dialog;
Dialog.info("hello again !");
}());
</script>
Wednesday, October 6, 2010
58. SAPO.Dom.Event
var obj = {
name: 'Tiago',
handler: function(ev){
alert(this.name);
}
}
SAPO.Dom.Event.observe(button, 'click',
obj.handler.bindObjEvent(obj));
Wednesday, October 6, 2010
59. SAPO.Dom.Loaded
Indica quando o DOM está carregado
Gera um evento dom:loaded
Wednesday, October 6, 2010
60. SAPO.Dom.Loaded
SAPO.Dom.Event.observe(document, 'dom:loaded', function(ev){
// do awesome javascript stuff
var el = document.getElementById("container");
});
Wednesday, October 6, 2010
61. SAPO.Communication.Ajax
new SAPO.Communication.Ajax('/url', {
parameters: { user: 'trodrigues' },
onSuccess: function(response, data){
alert(data);
}
});
Wednesday, October 6, 2010
63. Syndication
• SAPO.Communication.Syndication
• Semelhante a JSONP
• Dar a volta à Same Origin Policy
• adiciona parâmetro jsonTag a url
• Exemplo: http://service.url/datafeed?jsonTag=varname
• servidor deve devolver var jsonTagName = {};
Wednesday, October 6, 2010
64. Syndication
new SAPO.Communication.Syndication(
'http://service.url/datafeed', {
onComplete: function(data) {
alert(data.name);
}
}
);
<script type="text/javascript">
var json6386348 = {
name: 'Tiago'
};
</script>
Wednesday, October 6, 2010
65. SAPO.Utility
Array
Cache
Cookie
Crypto
Date
Dimensions
Dumper
Wednesday, October 6, 2010
66. SAPO.Utility
Array Error
Cache FormValidator
Cookie I18n
Crypto Pagination
Date Selection
Dimensions Serialize
Dumper String
Wednesday, October 6, 2010
68. SAPO.Effects
• Ainda em forte desenvolvimento
Wednesday, October 6, 2010
69. SAPO.Effects
• Ainda em forte desenvolvimento
• Baseado em ideias do scripty2
Wednesday, October 6, 2010
70. SAPO.Effects
• Ainda em forte desenvolvimento
• Baseado em ideias do scripty2
• Transições de CSS quando possível
Wednesday, October 6, 2010
71. SAPO.Effects
• Ainda em forte desenvolvimento
• Baseado em ideias do scripty2
• Transições de CSS quando possível
• Módulos existentes:
• Fade
• Slide
Wednesday, October 6, 2010
74. SAPO.Widget
Widgets utilizadas em vários serviços
Base para snippets
Wednesday, October 6, 2010
75. Bundles
Concatenar e minificar uma lista de ficheiros
Wednesday, October 6, 2010
76. Bundles
Concatenar e minificar uma lista de ficheiros
Menos pedidos HTTP
Wednesday, October 6, 2010
77. Bundles
Concatenar e minificar uma lista de ficheiros
Menos pedidos HTTP
Opcional, mas ajuda
Wednesday, October 6, 2010
78. Bundles
Concatenar e minificar uma lista de ficheiros
Menos pedidos HTTP
Opcional, mas ajuda
Usados internamente
Wednesday, October 6, 2010
79. Bundles
Concatenar e minificar uma lista de ficheiros
Menos pedidos HTTP
Opcional, mas ajuda
Usados internamente
Servidos de http://js.sapo.pt/Bundles/
Wednesday, October 6, 2010
80. Snippets
Semelhantes a bundles
Wednesday, October 6, 2010
81. Snippets
Semelhantes a bundles
Inclusão de widgets em páginas
Wednesday, October 6, 2010
82. Snippets
Semelhantes a bundles
Inclusão de widgets em páginas
Carregam e inicializam código necessário
Wednesday, October 6, 2010
83. Snippets
Semelhantes a bundles
Inclusão de widgets em páginas
Carregam e inicializam código necessário
Possibilitam uso externo de widgets
Wednesday, October 6, 2010
84. Snippets
Semelhantes a bundles
Inclusão de widgets em páginas
Carregam e inicializam código necessário
Possibilitam uso externo de widgets
Servidas de http://js.sapo.pt/Snippets/
Wednesday, October 6, 2010
85. Snippets
<script
src="http://js.sapo.pt/Snippets/Gallery-0.1.js?url=http://
services.sapo.pt/Photos/RSS2/?u=shiryu&a=3"></script>
Wednesday, October 6, 2010