Nó js forex


Esta é provavelmente uma das coisas mais emocionantes que eu vim com desde que eu comecei a brincar com JavaScript. Se você já escreveu um fragmento JS um pouco complexo, você pode ter notado que os navegadores de computadores mais lentos (como o FF2 no Mac) congelarão se você executar um loop grande que faça algumas operações pesadas (ligações de eventos, manipulações de dom, etc.). Para mim, em um usuário isso sempre foi muito chato, uma vez que apenas entra em seu fluxo de trabalho e se você ficar azarado pode até mesmo travar o seu navegador. Até agora eu pensei que a única maneira de evitar isso era simplesmente escrever JavaScript menos intenso ou otimizar o inferno fora dele. No entanto, com as atualizações recentes chegando para PostTask weve chegou ao ponto que muitas vezes precisamos de vincular até 300 eventos () no carregamento da página, bem como executar um monte de outras operações. Chegou ao ponto onde o carregamento do lado iria congelar FF2 no mac para um insano 16 segundos - absolutamente inaceitável por qualquer padrão. Esta postagem é sobre como um truque simples reduziu o tempo de inicialização para 5 segundos, evitando qualquer congelamento de qualquer navegador ao mesmo tempo. O grande segredo - Usar o JavaScript para dividir a carga de trabalho O problema-chave identificado que é responsável pelo congelamento do navegador é que o JavaScript é executado em um único segmento. Isso significa que enquanto há algum código JS em execução, nenhum outro código pode ser executado ao mesmo tempo. De meus dias velhos de VB recordei que havia uma função chamada doEvents () que você poderia pôr em laços grandes para manter seus apps da congelação. O que ele fez foi essencialmente para ver se havia qualquer outro código que precisava ser executado, executá-lo e, em seguida, voltar em seu loop. JavaScript não tem essa função, mas algo que vem muito perto - temporizadores. John recentemente fez um bom post sobre eles que confirmou minhas experiências anteriores com eles: Se você definir um intervalo ou tempo limite de permite dizer 50ms em JavaScript não há nenhuma garantia a qualquer momento quando o evento será acionado. A única coisa que JS promete é não acionar o evento antes que 50ms tenham terminado. Outro então que apenas tenta executar o evento ASAP. Isso significa que se houver algum código JS atualmente em execução, nenhum evento será acionado até que o bloco de código termine de ser executado. Isso também significa que vários eventos (intervalo de tempo limite, clique em callbacks) podem fazer fila por um tempo e depois disparar de volta para trás. O que parece um problema muito irritante que você tem que contornar se você quiser fazer permite dizer suave animações, verifica-se que isso também abre uma ampla série de possibilidades de escrever código assíncrono em JS. E por assíncrono quero dizer código que não irá executar como parte de seu fluxo de programa normal, mas sempre que é conveniente para JS o navegador para executá-lo. Você já deve ter chegado à conclusão que eu fiz há pouco tempo: Este é um mecanismo perfeito para dividir uma grande operação em pedaços menores que o navegador pode processar sempre que sua conveniência e não causará qualquer congela. Isso sempre funciona melhor se você deixar algum espaço para respirar para o navegador entre executar os pedaços de código (1-5ms normalmente são suficientes). Aqui está um código que pode fazer isso de uma maneira fácil de usar:. Fila 123 timer: null, queue: 91 93, adicionar: função 40 fn, contexto, tempo 41 123 var setTimer função 40 tempo 41 123. Fila. timer setTimeout 40 função 40 41 123 tempo. fila. Adicionar 40 41 se 40. Fila. queue. Comprimento 41 123 setTimer 40 tempo 41 125 125. tempo 2 41 125 se 40 fn 41 123. Fila. queue. Empurrar 40 91 fn, contexto, tempo 93 41 se 40. Fila. queue. Comprimento 1 41 123 setTimer 40 tempo 41 125 retorno 125 var next. Fila. queue. Deslocamento 40 41 se 40 próximo 41 123 retorno 0 125 próximo 91 0 93. chamada 40 próxima 91 1 93 janela 41 retorno próximo 91 2 93 125, desmarque: função 40 41 123 desativação 40. Queue. timer 41. Queue. queue 91 93 125 125 Late event binding Uma das coisas que usamos isso para PostTask é o que eu chamo de ligação de evento tardio. Vamos dizer que você tem o seguinte código: (Nota: Isso poderia ser simplificado muito, mas desta forma é mais fácil de entender como funciona a refatoração) 40 documento 41. pronto 40 função 40 41 123 um monte de lis, digamos 500 40 li 41. cada 40 função 40 41 123 40 este 41. ligar 40 clique. Função 40 41 123 alerta 40 Sim, você clicou-me 41 125 41 125 41 125 41 Você provavelmente vai notar que ele já tem um impacto notável no seu tempo de inicialização páginas enquanto congelar o navegador durante ele. Para evitar isso pode ser tão fácil quanto: 40 documento 41. pronto 40 função 40 41 123 um monte de lis, digamos 500 40 li 41. cada 40 função 40 41 123 var auto isso. DoBind função 40 41 123 40 auto 41. ligar 40 clique. Função 40 41 123 alerta 40 Sim, você clicou em mim 41 125 41 125. fila. Adicionar 40 doBind, este 41 125 41 125 41 Isso deve minimizar o tempo de inicialização de páginas para baixo para quase sua velocidade não JS, enquanto também vinculativo os eventos em tempo hábil. Essencialmente, em vez de vincular o evento diretamente com o documento pronto, invente, você simplesmente encapsula cada ligação em seu próprio encerramento que você adiciona a uma fila para execução posterior. Isso significa que o usuário vai ver a página muito rápido, enquanto no fundo a cada 2ms um novo elemento li obtém sua ligação feita. Claro que o usuário poderia agora fazer algo realmente irritante e clique em um elemento antes de seus acabamentos de bind que pode estragar as coisas. No entanto, isso é muito improvável. Fore one, o usuário precisa ser muito rápido, porque o inferno precisa clicar em puro. Eu estive usando ExtJS para desenvolver meu webapp e havent correu para este problema (ainda) ou até mesmo considerado se havia um DoEvents como chamada para js. Gostaria de saber se esta estratégia pode ser facilmente implementada em ExtJS. Quando eu precisar dele, eu vou bater) Para qualquer um de vocês ainda estão presos no dia como eu, para loops intensivos em VB, chamar DoEvents ea chamada de API de sono (zero ms é suficiente) para realmente processar processamento. Caso contrário, a CPU permanecerá vinculada durante o loop. Grande artigo Felix Im enfiando isto afastado para um dia chuvoso com certeza. Im com Atanas sobre a manipulação de evento vinculativo para o pai, em vez de as crianças individuais, mas, claro, todos os eventos vinculativo isnt sempre este corte limpo. Se a linha 6 no seu primeiro código for:.queue. timer setTimeout (function () Eu acredito que a lógica é um pouco complicada e poderia usar alguns comentários. Javascript é como uma piada. Seu dar erros muito tempo. Todos eles são baseados Sobre a compatibilidade do navegador. Por que os desenvolvedores de software parar de bater themselfs e desenvolver um navegador comum Peter: Eu reparei, obrigado por detectar que. Desculpe o código, isso é significado como um PoC e eu quero fazer algumas alterações nele antes de colocar para fora Uma versão de lançamento Forex: Não, tentar impulsionar seu PR com um link sem seguir é uma piada). Você deve pensar em um switch de carreira - nem JS nem spamming parece ser algo seu bom em. Sua experiência em casa expandida e diversificada sob demanda. Co-fonte de projetos com nós - tornar o mais ambicioso de suas empresas possíveis Serviços de desenvolvimento de aplicativos Construir uma aplicação inovadora a partir do zero, integrar ativos de software ou manter um mdash implantação ao vivo qualquer que seja seu objetivo, podemos ajudá-lo a alcançá-lo Modernização de aplicativos migração amp Renovar monolítico , Desconectando aplicativos legados e aproveitando as mais recentes tecnologias. Investir no futuro do seu negócio hoje QA amp Testes de Software QA é uma pedra angular de um sucesso de projetos. Nós criamos um processo de teste eficaz e de ponta para entregar qualidade que exceda expectativas dos clientes Necessidade de baixar dados históricos de estoque Precisa de uma grande quantidade ou seja: desde 1962 Bem, não procure mais, eu tenho você coberto Como fazer o download de informações históricas de ações do Yahoo Yahoo tem um Segredo API que eles usam em lá próprias páginas que permite exibir dados históricos de estoque. A API é baseada em REST e muito fácil de usar. Você precisa especificar cada ticker de ações que você deseja e a data de início da qual deseja o histórico. (A data mais antiga parece estar por volta de 1962.) C Código de Download de Stock Histórico Para usar a API do Yahoo não documentada para fazer o download de dados de estoque históricos, você precisará definir um estoque como este: O código para baixar e analisar os resultados do estoque histórico Você precisará de algo parecido com o código C abaixo: Exemplo de usar o C Historical Stock Downloader Crie um aplicativo de console C simples, em seguida, adicione este código:

Comments

Popular posts from this blog

Perfil do mercado da líbia forex

Pokemon trading card game online usernames e senhas

Abcd forex