Fonte: http://tomee.apache.org/jpa-concepts.htmlSe tem uma coisa que voce precisa entender para usar com sucesso a JPA (Java Persistence API), e o conceito de Cache. Infelizmente o cache e uma estrutura interna, nao exposta pela JPA via codigo.O que voce tem que ter em mente sobre o cache da JPA:Um Cache e uma copia de dados, uma copia desconectada do banco de dados.Flushing e o ato de levar as modificacoes feitas em cache para o banco de dados.Um PersistenceContext e, essencialmente, um Cache.Um EntityManager represetne um PersistenceContext (logo, um cache).Um EntityManagerFactory cria um EntityManager (e todavia um PersistenceContext/Cache).Comparando os contextos de persistencia RESOURCE_LOCAL e JTA.Com <persistence-unit transaction-type="RESOURCE_LOCAL"> voce e que se responsabiliza por criar e rastrear o EntityManager (PersistenceContext/Cache).Voce precisa usar o EntityManagerFactory para obter um EntityManager.A instancia do EntityManager obtida e um PersistenceContext/Cache.Um EntityManagerFactory pode ser injetado com a anotacao @PersistenceUnit apenas (sem @Persistence Context).Nao e permitido usar @PersistenceContext para se referir a uma unit do tipo RESOURCE_LOCAL.Voce deve usar EntityTransaction API para iniciar/comitar todas as chamadas para seu ENtityManager.Chamar ENtityManagerFactory.createEntityManager() duas vezes resulta em duas instancias separadas de EntityManager e, e claro, dois PersistenceContext/Caches separados.Nao e uma boa ideia ter mais de uma instanciade um EntityManager em uso (nao crie um segundo EntityManager antes de destruir o primeiro).Com <persistence-unit transaction-type="JTA"> o container ira cuidar da criacao e do rastreamento do EntityManager para voce, e neste caso:Voce nao pode usar o EntityManagerFactory para obter um EntityManager.Voce so pode ter o EntityManager que e fornecido pelo container.Um EntityManager pode ser injetado pela anotacao @PersistenceContext, somente (sem @PersistenceUnit).Voce nao pode usar @PersistenceUnit para fazer referencia a uma unit do tipo JTA.O EntityManager fornecido pelo container e uma referencia ao PersistenceContext/Cache associado a transacao JTA.Se nao ha transacoes JTA em progresso, o EntityManager nao pode ser usado porque nao ha PersistenceContext/Cache.Qualquer um com uma referencia para a mesma unit na mesma transacao ira automaticamente ter uma referencia para o mesmo PersistenceContext/Cache.O PersistenceContext/Cache e flushed e limpo a cada commit JTA.E isso ai! Mais informacoes e exemplos veja em http://tomee.apache.org/jpa-concepts.html Essa vai de uma das questoes do simulado para o exame 70-480 da Microsoft (HTML 5, JavaScript e CSS3).A API Web Worker permite executar scripts em background (em uma thread separada da thread principal), sem bloquear a execucao da pagina. A API e implementada no objeto Worker.Voce deve, antes de mais nada, instanciar o objeto Worker usando a palavra chave "new", atribuindo a instancia resultante a uma variavel, conforme o exemplo:var worker = new Worker("ArquivoComScriptParaExecutar.js");O parametro do construtor e o arquivo JavaScript que contem o script que sera executado em background. Tipicamente sao tarefas de longa duracao, que poderiam bloquear a execucao da pagina principal por algum tempo. O codigo do script pode informar o termino da execucao pelo envio de uma mensagem para o seu chamador, atraves da funcao postMessage.Posteriormente, e necessario associar um event handler ao evento onmessage do objeto Worker. Isto permite a thread principal ser notificada do final da execucao do script em background. Para manipular o evento com uma funcao anonima faca o seguinte:worker.onmessage = function(e) {window.alert(e.data);};O parametro para a funcao anonima