JavaScript Remoto

JavaScript Remoto Esgotado
× JavaScript Remoto

JavaScript Remoto

Compartilhar

Autores: Ben Vinegar
Anton Kovalyov

ISBN impresso: 978-85-7522-372-7
Ano: 2013
Páginas: 384
Preço: R$ 83,00

4 opiniões | Opine sobre este livro

Descrição do livro

Há um pouco de arte na criação de JavaScript remoto – scripts incorporáveis e que podem ser conectados a qualquer website. Devem ser facilmente adaptáveis a ambientes hostis, coexistir com outros aplicativos e administrar as vulnerabilidades complexas de segurança, que surgem quando recursos e arquivos com códigos são servidos a partir de endereços remotos na web. Faça isso corretamente e você terá opções ilimitadas para distribuir seus aplicativos.

Este livro único mostra como conseguir isso. Exemplos de scripts remotos que são incorporados nos sites mundo afora: o sistema de comentários da Disqus, o monitoramento do Google Analytics e o botão Curtir do Facebook.

O livro JavaScript Remoto descreve os detalhes da construção de aplicativos JavaScript remotos completos. Você aprenderá técnicas de desenvolvimento de widgets que colhem dados de tráfego, oferecem camadas e diálogos úteis ou que implementam recursos como bate-papo e comentários. Os conceitos e exemplos apresentados no livro representam as melhores práticas para esta área emergente, baseados em milhares de horas de desenvolvimento real e resultados obtidos de milhões de usuários.

Conteúdo do livro:

- Desenvolvimento de JavaScript, HTML e CSS livres de conflitos

- Como fazer solicitações entre domínios a partir do navegador

- Como vencer as limitações dos cookies remotos

- Vulnerabilidades de segurança de aplicativos remotos

Escrito para desenvolvedores web que já conhecem JavaScript, este livro não exige conhecimento prévio sobre aplicativos remotos.

“Escrito por dois dos melhores desenvolvedores e especialistas no assunto.”

– Do prefácio de Paul Irish, Relações com desenvolvedores Google Chrome e jQuery

“Leitura obrigatória para qualquer desenvolvedor JavaScript sério.”

– Brian Forester, ProQuest

“Ótimas informações sobre aplicativos de front-end distribuídos para web!”

– Sopan Shewale, Saba Software

“Explica de forma clara as complexidades do JavaScript remoto.”

- Jake McCrary, DRW Trading Group

Ver menos ▲

Sumário

  • Introdução
  • Prefácio
  • Agradecimentos
  • Sobre este livro
  • Sobre os autores
  • Sobre a ilustração da capa
  • Capítulo 1 ■ Introdução ao JavaScript remoto
    • 1.1 Definição de JavaScript remoto
    • 1.2 Os muitos empregos do JavaScript remoto
      • 1.2.1 Widgets incorporados
      • 1.2.2 Análise e métrica de tráfego
      • 1.2.3 Wrappers de API de web services
    • 1.3 Desenvolvimento de um widget básico
      • 1.3.1 Geração de JavaScript em servidor
      • 1.3.2 Distribuição de widgets como iframes
    • 1.4 Desafios do desenvolvimento de sistemas remotos
      • 1.4.1 Contexto desconhecido
      • 1.4.2 Ambiente compartilhado
      • 1.4.3 Restrições de navegadores
    • 1.5 Resumo
  • Capítulo 2 ■ Distribuição e carregamento do seu aplicativo
    • 2.1.1 Página de testes do provedor de conteúdo
    • 2.1.2 Servidor web
    • 2.1.3 Simulação de domínios múltiplos
    • 2.2 Carregamento do script inicial
      • 2.2.1 Inclusão de script com bloqueio
      • 2.2.2 Scripts sem bloqueio com async e defer
      • 2.2.3 Inserção dinâmica de script
    • 2.3 Arquivo de script inicial
      • 2.3.1 Apelidos para window e undefined
      • 2.3.2 Fluxo básico de aplicativo
    • 2.4 Carregamento de arquivos adicionais
      • 2.4.1 Arquivos JavaScript
      • 2.4.2 Bibliotecas
    • 2.5 Passagem de argumentos aos scripts
      • 2.5.1 Utilização da query string
      • 2.5.2 Utilização do identificador de fragmento
      • 2.5.3 Utilização de atributos de dados personalizados
      • 2.5.4 Utilização de variáveis globais
    • 2.6. Busca de dados do aplicativo
    • 2.7 Resumo
  • Capítulo 3 ■ Apresentação de HTML e CSS
    • 3.1 Geração de HTML
      • 3.1.1 Utilização do document write
      • 3.1.2 Anexar em um local conhecido
      • 3.1.3 Anexação de widgets múltiplos
      • 3.1.4 Separação dos alvos de apresentação
    • 3.2 Aplicação de estilo ao HTML
      • 3.2.1 Estilos em linha (inline)
      • 3.2.2 Carregamento de arquivos CSS
      • 3.2.3 Incorporação de CSS no JavaScript
    • 3.3 HTML e CSS defensivos
      • 3.3.1 Namespaces
      • 3.3.2 Especificidades do CSS
      • 3.3.3 Definição redundante de CSS
    • 3.4 Incorporação de conteúdo em iframes
      • 3.4.1 Iframes src-less
      • 3.4.2 Iframes externos
      • 3.4.3 Herança de estilos
      • 3.4.4 Quando não usar os iframes?
    • 3.5 Resumo
  • Capítulo 4 ■ Comunicação com o servidor
    • 4.1 O AJAX e a política de mesma origem dos navegadores
      • 4.1.1 Regras de determinação de mesma origem
      • 4.1.2 Política de mesma origem e carregamento de scripts
    • 4.2 JSON com padding (JSONP)
      • 4.2.1 Carregamento de JSON por meio de elementos de scripts
      • 4.2.2 Funções de callback dinâmicas
      • 4.2.3 Limitações e problemas de segurança
    • 4.3 Proxies de subdomínios
      • 4.3.1 Alteração da origem do documento com document domain
      • 4.3.2 Mensagens entre origens por meio de proxies de subdomínio
      • 4.3.3 Combinação de proxies de subdomínio com JSONP
      • 4.3.4 O Internet Explorer e os proxies de subdomínio
      • 4.3.5 Implicações de segurança
    • 4.4 Compartilhamento de recursos entre origens (CORS)
      • 4.4.1 Envio de solicitações HTTP simples
      • 4.4.2 Transferência de cookies com CORS
      • 4.4.3 Envio de preflight request
      • 4.4.4 Compatibilidade de navegadores
    • 4.5 Resumo
  • Capítulo 5 ■ Mensagens em iframes entre domínios
    • 5.1 API window postMessage do HTML5
      • 5.1.1 Envio de mensagens com window postMessage
      • 5.1.2 Recebimento de mensagens enviadas a uma janela
      • 5.1.3 Compatibilidade dos navegadores
    • 5.2 Técnicas de reversão (fallback)
      • 5.2.1 Envio de mensagens com window name
      • 5.2.2 Envio de mensagens com identificador de fragmento de URL
      • 5.2.3 Envio de mensagens com Flash
    • 5.3 Envio simples de mensagens entre domínios com easyXDM
      • 5.3.1 Carregamento e início da easyXDM
      • 5.3.2 Envio de mensagens simples com eaxyXDM Socket
      • 5.3.3 Definição de interfaces JSON-RPC com easyXDM Rpc
    • 5.4 Resumo
  • Capítulo 6 ■ Autenticação e sessões
    • 6.1 Cookies remotos
      • 6.1.1 Definição e leitura de sessões
      • 6.1.2 Desativação de cookies remotos
      • 6.1.3 Internet Explorer e headers P3P
      • 6.1.4 Como detectar quando os cookies não estão disponíveis
    • 6.2 Como gravar cookies remotos
      • 6.2.1 Via janelas dedicadas
      • 6.2.2 Solução com iframe (somente para Safari)
      • 6.2.3 Sessões de página única para o Chrome e o Firefox
    • 6.3 Como proteger as sessões
      • 6.3.1 HTTPS e cookies seguros
      • 6.3.2 Autenticação multiníveis
    • 6.4 Resumo
  • Capítulo 7 ■ Segurança
    • 7.1 Cookies, sessões e roubo de sessões
    • 7.2 Scripts entre sites (XSS)
      • 7.2.1 Ataques XSS
      • 7.2.2 Vulnerabilidades XSS no CSS
      • 7.2.3 Defenda seu aplicativo contra ataques XSS
    • 7.3 Falsificação de solicitação entre sites
      • 7.3.1 Ataques XSRF
      • 7.3.2 Roubo de JSON
      • 7.3.3 Defesa do seu aplicativo contra ataques XSRF
    • 7.4 Vulnerabilidades no provedor de conteúdo
      • 7.4.1 Falsificação de provedor de conteúdo
      • 7.4.2 Furto de cliques
      • 7.4.3 Negação de serviço
    • 7.5 Resumo
  • Capítulo 8 ■ Desenvolvimento de um SDK remoto em JavaScript
    • 8.1 Implementação de um SDK básico
      • 8.1.1 Inicialização
      • 8.1.2 Carregamento assíncrono
      • 8.1.3 Exposição de funções públicas
      • 8.1.4 Ouvintes de eventos
    • 8.2 Versionamento
      • 8.2.1 Versionamento de URL
      • 8.2.2 Inicialização versionada
    • 8.3 Empacotamento das APIs de web services
      • 8.3.1 Acesso a APIs de web services no cliente
      • 8.3.2 Empacotamento da API da Camera Stork
      • 8.3.3 Identificação de provedores de conteúdo
      • 8.3.4 Autorização de usuário e OAuth
    • 8.4 Resumo
  • Capítulo 9 ■ Desempenho
    • 9.1 Otimização da carga
      • 9.1.1 Combinação e minificação do código-fonte
      • 9.1.2 Redução de solicitações de imagens
      • 9.1.3 Colocação de arquivos em cache
      • 9.1.4 Adiamento de solicitações HTTP
    • 9.2 Otimização do JavaScript
      • 9.2.1 Dentro do navegador: encadeamento de UI, repaint e reflow
      • 9.2.2 Controle de chamadas dispendiosas: throttle e debounce
      • 9.2.3 Adiamento do cálculo com setTimeout
    • 9.3 Desempenho percebido
      • 9.3.1 Ações otimistas do usuário
      • 9.3.2 Apresentação antes de o documento estar pronto
    • 9.4 Resumo
  • Capítulo 10 ■ Depuração e testes
    • 10.1 Depuração
      • 10.1.1 Como servir código de desenvolvimento em produção
      • 10.1.2 Como percorrer o código
    • 10.2 Testes
      • 10.2.1 Testes de unidade, integração e regressão
      • 10.2.2 Criação de testes de regressão com QUnit
      • 10.2.3 Criação de testes de regressão com Hiro
    • 10.3 Resumo
Ver sumário completo ▼

Sobre os autores

Ben Vinegar

Ben Vinegar é engenheiro da Disqus, uma plataforma de comentários em JavaScript remoto. … Ver perfil completo ▶

Anton Kovalyov

Anton Kovalyov é engenheiro de software na Mozilla. … Ver perfil completo ▶

Opinião dos leitores

Angel A G M

Bom livro. Faltam itens recentes, mas ainda vale a pena.

Gabriel K

Excelente livro! Sem palavras para descrever.

Raphael A F C

Uma obra indicada para os programadores que queiram tirar o máximo proveito do JavaScript para implementação e entrega de serviços remoto.

Silvio D

O livro mostra os aspectos sobre a programação de Javascript Remoto. Tem algumas dicas interessantes e códigos práticos. Contudo, a decisão final de qual alternativa aplicar fica a cargo do programador. O autor mostra os prós e contras de cada uma das abordagens.

Ver todas ▼