Quais são as formas de carregar JavaScript ou CSS sem executá-las?
Estou ciente do carregamento dinâmico de scripts / css adicionando<style>
ou<link>
marcam a cabeça ou o corpo da página, mas depois serão executados pelo navegador após o download. Eu estava pensando em outras maneiras de baixar, mas não executam o código javascript / css. Primeiro, o que me ocorreu foi o XMLHttpRequest:
//simple execution received script
var executeScript = function(code){
eval(code);
};
//create XMLHttpRequest in cross-browser manner
var xhr = createXMLHTTPObject();
//check whether file is loaded
var checkStatus = function(){
if(xhr.readyState == 4){
if(xhr.status >= 200 && xhr.status < 300 || xhr == 304){
executeScript(xhr.responseText);
}
else {//error
}
}
};
//do request
xhr.open('get','http://podlipensky.com/examples/dynamicscript/hey.js', true);
xhr.onreadystatechange = checkStatus;
xhr.send(null);
Mas, neste caso, estamos limitados a scripts do mesmo domínio por causa da mesma política de origem (embora possamos tentar contorná-la com CORS)
Outra abordagem, eu estava pensando é adicionar dinamicamenteiframe
na página e adicionescript
para oiframe
, portanto, o script será executado assim que baixado, mas acontece no contexto de outra página -iframe
.
Existem outras maneiras de baixar e não executar o scrip
ATUALIZAR
ma das razões pelas quais seria útil fazer o download, mas não executar o javascript / css, é pré-carregar bibliotecas de terceiros, mas usá-las somente sob demand