Eu tenho adicionado logs ao console para verificar o status de diferentes variáveis sem usar o depurador Firefox.
Entretanto, em muitos lugares nos quais eu adiciono um console.log
no meu arquivo main.js
, eu recebo o seguinte erro ao invés das minhas adoráveis mensagens escritas a mão para mim mesmo:
Synchronous XMLHttpRequest na linha principal é depreciado devido aos seus efeitos prejudiciais para o usuário final's experiência. Para mais ajuda http://xhr.spec.whatwg.org/
Que alternativas ao console.log
posso adicionar ao meu código de utilização que não causem este erro?
Estou a fazer mal" a fazer mal"?
Isso aconteceu comigo quando eu estava sendo preguiçoso e incluí uma etiqueta de script como parte do conteúdo que estava sendo devolvido. Como tal:
Conteúdo HTML Parcial:
<div>
SOME CONTENT HERE
</div>
<script src="/scripts/script.js"></script>
Parece, pelo menos no meu caso, que se você retornar conteúdo HTML como esse via xhr, você fará com que jQuery faça uma chamada para obter esse script. Essa chamada acontece com uma bandeira de assimetria falsa, pois assume que você precisa do script para continuar carregando.
Em situações como esta você'seria melhor ser servido olhando para uma estrutura vinculativa de algum tipo e apenas retornando um objeto JSON, ou dependendo do seu backend e modelos você poderia mudar a forma como você carrega seus scripts.
Você também poderia usar jQuery's getScript()
para pegar scripts relevantes. Aqui está um violino, It's apenas uma cópia direta do exemplo jQuery, mas I'não estou vendo nenhum aviso sendo lançado quando os scripts são carregados dessa forma.
**Exemplo***
<script>
var url = "/scripts/script.js";
$.getScript(url);
</script>
[
][1] [2]A mensagem de aviso PODE SER devido a um pedido de XMLHttpRequest dentro da linha principal com a bandeira async definida como falsa.
https://xhr.spec.whatwg.org/#synchronous-flag:
XMLHttpRequest Síncrono fora dos trabalhadores está no processo de ser removido da plataforma web, pois tem efeitos prejudiciais para a experiência do usuário final's. (Este é um longo processo que leva muitos anos). Os desenvolvedores não devem passar falso para o argumento da assimetria quando o JavaScript global environment é um ambiente de documentos. Agentes do usuário são fortemente encorajados a alertar sobre tal uso em ferramentas de desenvolvimento e pode experimentar atirar uma excepção InvalidAccessError quando isso ocorre.
A direção futura é permitir apenas XMLHttpRequests em threads de trabalhadores. A mensagem destina-se a ser um aviso para esse efeito.
Eu também estava enfrentando o mesmo problema, mas consegui resolvê-lo colocando async: true. Eu sei que é por padrão verdade, mas funciona quando eu escrevo explicitamente
$.ajax({
async: true, // this will solve the problem
type: "POST",
url: "/Page/Method",
contentType: "application/json",
data: JSON.stringify({ ParameterName: paramValue }),
});