Jeg har lagt til logger i konsollen for å sjekke statusen til forskjellige variabler uten å bruke Firefox-feilsøkingsprogrammet.
Imidlertid, mange steder der jeg legger til en console.log
i main.js
-filen min, mottar jeg følgende feil i stedet for mine nydelige små håndskrevne meldinger til meg selv:
Synkron XMLHttpRequest på hovedtråden er utdatert på grunn av dens skadelige effekter på sluttbrukerens opplevelse. For mer hjelp http://xhr.spec.whatwg.org/
Hvilke alternativer til eller wrappers for console.log
kan jeg legge til koden min som ikke vil forårsake denne feilen?
Gjør jeg det feil?
Dette skjedde med meg da jeg var lat og inkluderte en skriptkode som en del av innholdet som ble returnert. Som sådan:
Delvis HTML-innhold:
<div>
SOME CONTENT HERE
</div>
<script src="/scripts/script.js"></script>
Det ser ut til, i hvert fall i mitt tilfelle, at hvis du returnerer HTML-innhold som det via xhr, vil du få jQuery til å ringe for å få det skriptet. Det anropet skjer med et async-flagg false siden det forutsetter at du trenger skriptet for å fortsette å laste.
I situasjoner som denne vil du være bedre tjent med å se på et bindende rammeverk av noe slag og bare returnere et JSON-objekt, eller avhengig av backend og templating kan du endre hvordan du laster inn skriptene dine.
Du kan også bruke jQuery's getScript()
for å hente relevante skript. Her er en fele, det er bare en rett kopi av jQuery-eksemplet, men jeg ser ikke noen advarsler kastet når skript lastes på den måten.
Eksempel
<script>
var url = "/scripts/script.js";
$.getScript(url);
</script>
[
][1]Advarselsmeldingen KAN skyldes en XMLHttpRequest-forespørsel i hovedtråden med async-flagget satt til false.
https://xhr.spec.whatwg.org/#synchronous-flag:
Synkron XMLHttpRequest utenfor arbeidstakere er i ferd med å bli fjernet fra webplattformen ettersom den har skadelige effekter for sluttbrukerens opplevelse. (Dette er en lang prosess som tar mange år). Utviklere må ikke sende false for async-argumentet når den JavaScript globale miljøet er et dokumentmiljø. Brukeragenter oppfordres på det sterkeste til å advare om slik bruk i utviklerverktøyene og kan eksperimentere med å kaste et InvalidAccessError-unntak når det oppstår. det oppstår.
Den fremtidige retningen er å bare tillate XMLHttpRequests i arbeidstråder. Meldingen er ment å være en advarsel om dette.
Jeg sto også overfor samme problem, men var i stand til å fikse det ved å sette async: true. Jeg vet at det som standard er sant, men det fungerer når jeg skriver det eksplisitt
$.ajax({
async: true, // this will solve the problem
type: "POST",
url: "/Page/Method",
contentType: "application/json",
data: JSON.stringify({ ParameterName: paramValue }),
});