Muitas pessoas já são proficientes no uso de Javascript, mas quando veem o defer, podem não saber para que ele é usado. Muitas pessoas também encontraram esse problema e precisam executar diretamente outros js e manipular objetos DOM e sempre reportar o objeto; erro não encontrado. Como todos sabem, o motivo é que a página ainda não foi carregada e o objeto de operação js ainda está sendo baixado. Mas muitas pessoas não sabem que adicionar a tag defer pode resolver facilmente esse problema.
<script src="../CGI-bin/delscript.js" defer></script>
A função do defer é executar o script após o carregamento do documento, para evitar o problema de não encontrar o objeto --- um pouco problemático
Copie o código do código da seguinte forma:
<button id="myButton" onclick="alert('ok')">teste</button>
<roteiro>
meuButton.click();
</script>
<roteiro>
meuButton.click();
</script>
<button id="myButton" onclick="alert('ok')">teste</button>
<adiamento de script>
função document.body.onload() {
alerta(document.body.offsetHeight);
}
</script>
Adicionar defer significa que ele será executado após o carregamento completo da página, o que equivale a window.onload, mas é mais flexível que window.onload no aplicativo!
Defer é um “herói anônimo” no poder dos scripts. Ele informa ao navegador que o segmento Script contém código que não precisa ser executado imediatamente e, usado em conjunto com o atributo SRC, também pode fazer com que esses scripts sejam baixados em segundo plano e o conteúdo em primeiro plano seja exibido para o usuário normalmente.
--Mas execute o script depois que o documento for carregado
Observe dois pontos:
1. Não chame o comando document.write em um segmento de script do tipo defer, porque document.write produzirá um efeito de saída direto.
2. Além disso, não inclua nenhuma variável ou função global a ser usada pelo script de execução imediata no segmento de script defer.
Uma maneira comum de otimizar o desempenho é definir o atributo "defer" na tag <SCRIPT> quando o script não precisar ser executado imediatamente. (O script imediato não está contido em um bloco de função, portanto será executado durante o processo de carregamento.) Depois de definir o atributo "defer", o IE não precisa esperar que o script seja carregado e executado. Dessa forma a página carregará mais rápido. De modo geral, isso também significa que os scripts imediatos são melhor colocados em blocos de função e manipulam a função no manipulador onload do documento ou objeto de corpo. Esta propriedade é útil quando existem alguns scripts que precisam ser executados com base nas ações do usuário - como clicar em um botão ou mover o mouse para uma determinada área. Mas quando há alguns scripts que precisam ser executados durante ou após o carregamento da página, os benefícios de usar o atributo defer não são grandes.
O atributo defer no script é falso por padrão. De acordo com a descrição no Guia de Programação DHTML, o atributo Defer é escrito assim:
Usar o atributo em tempo de design pode melhorar o desempenho de download de uma página porque o navegador não precisa analisar e executar o script e pode continuar baixando e analisando a página.
Em outras palavras: se você adicionar o atributo defer ao escrever um script, o navegador não precisará processá-lo imediatamente ao baixar o script, mas continuará baixando e analisando a página, o que melhorará o desempenho do download.
Existem muitas dessas situações. Por exemplo, se você definir muitas variáveis JavaScript ou escrever muitos scripts no arquivo de referência (.inc) que precisam ser processados, você também pode adicionar o atributo defer a esses scripts, o que certamente ajudará a melhorar o desempenho .
Os exemplos são os seguintes:
Copie o código do código da seguinte forma:
<linguagem script="javascript" adiar>
var objeto = new Objeto();
....
</script>
Como o atributo defer é padronizado como false, então aqui
<linguagem script="javascript" adiar>
Declarar explicitamente o atributo defer é equivalente a
<script idioma="javascript" defer=true>
Depois de declarar o atributo defer, você precisa determinar se outras variáveis se referem às variáveis no bloco de script defer, caso contrário ocorrerá um erro de script.