Esmu pievienojis žurnālus konsolei, lai pārbaudītu dažādu mainīgo statusu, neizmantojot Firefox atkļūdošanas programmu.
Tomēr daudzās vietās, kur es pievienoju console.log
savā main.js
failā, manas jaukās, ar roku rakstītās ziņiņas vietā es saņemu šādu kļūdu:
Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. Vairāk palīdzības http://xhr.spec.whatwg.org/
Kādas alternatīvas vai apvalkus console.log
var pievienot savam kodam, lai neizraisītu šo kļūdu?
Vai es to daru nepareizi?
Tas notika, kad biju slinks un atgrieztajam saturam pievienoju skripta tagu. Tādējādi:
Daļējs HTML saturs:
<div>
SOME CONTENT HERE
</div>
<script src="/scripts/script.js"></script>
Šķiet, vismaz manā gadījumā, ka, ja jūs atgriežat HTML saturu, izmantojot xhr, jūs liksiet jQuery veikt izsaukumu, lai iegūtu šo skriptu. Šis izsaukums notiek ar async karodziņu false, jo tiek pieņemts, ka jums ir nepieciešams skripts, lai turpinātu ielādēšanu.
Šādās situācijās, piemēram, kā šī, labāk būtu izmantot kādu saistošu sistēmu un vienkārši atgriezt JSON objektu, vai arī atkarībā no jūsu backend un templating jūs varētu mainīt to, kā ielādējat savus skriptus.
Jūs varētu arī izmantot jQuery's getScript()
, lai paņemtu attiecīgos skriptus. Šeit ir fiddle, Tas ir tikai jQuery piemēra kopija, bet es neredzu nekādus brīdinājumus, kad skripti tiek ielādēti šādā veidā.
Piemērs
<script>
var url = "/scripts/script.js";
$.getScript(url);
</script>
[
][1]Brīdinājuma ziņojums VAR BŪT saistīts ar XMLHttpRequest pieprasījumu galvenajā pavedienā ar async karodziņu false.
https://xhr.spec.whatwg.org/#synchronous-flag:
Sinhronais XMLHttpRequest ārpus darba ņēmējiem ir procesā.
tiek izņemts no tīmekļa platformas, jo tam ir kaitīga ietekme uz gala lietotāja pieredzi. (Tas ir ilgs process, kas aizņem daudz gadiem.) Izstrādātāji nedrīkst async argumentam nodot false, kad JavaScript globālā vide ir dokumenta vide. Lietotāju aģenti ir stingri aicināti brīdināt par šādu lietojumu izstrādātāju rīkos. un var eksperimentēt ar izņēmuma InvalidAccessError izmešanu, kad tas notiek.
Nākotnes virziens ir atļaut XMLHttpRequests tikai darba pavedienos. Šis ziņojums ir paredzēts kā brīdinājums par to.
Es arī saskāros ar to pašu problēmu, bet man izdevās to atrisināt, ievietojot async: true. Es zinu, ka pēc noklusējuma tas ir true, bet tas darbojas, kad es to uzrakstu skaidri.
$.ajax({
async: true, // this will solve the problem
type: "POST",
url: "/Page/Method",
contentType: "application/json",
data: JSON.stringify({ ParameterName: paramValue }),
});