kzen.dev
  • Frågor
  • Taggar
  • Användare
Meddelanden
Belöningar
Registrering
När du har registrerat dig kommer du att få information om svar och kommentarer på dina frågor.
Logga in
Om du redan har ett konto loggar du in för att kontrollera nya meddelanden.
Det kommer att finnas belöningar för frågor, svar och kommentarer.
Mer
Källa
Redigera
 testndtv
testndtv
Question

Felet Maximal storlek på anropsstacken överskrids

Jag använder en Direct Web Remoting (DWR) JavaScript-biblioteksfil och får ett fel endast i Safari (dator och iPad).

Det står

Maximal storlek på anropsstacken överskrids.

Vad exakt betyder detta fel och stoppar det bearbetningen helt och hållet?

Finns det någon lösning för webbläsaren Safari (På iPad Safari står det faktiskt följande

JS:exekvering överskred timeout

vilket jag antar är samma problem med anropsstacken)

473 2011-05-23T09:49:48+00:00 3
 Gonzalo.-
Gonzalo.-
Redigerad fråga 2017ör maj 2017 в 6:22
Programmering
javascript
html
webkit
dwr
callstack
Popular videos
EnsV 3. hooaeg, 2. osa: Auto
EnsV 3. hooaeg, 2. osa: Auto
för 1 år sedan
ETT NYTT KAPITTEL I LIVET!
ETT NYTT KAPITTEL I LIVET!
för 1 år sedan
3-vaihepistorasian asennus
3-vaihepistorasian asennus
för 1 år sedan
– Vi opplever ekstremt mye stjeling
– Vi opplever ekstremt mye stjeling
för 1 år sedan
Köp Varmluftsfläkt Malmbergs 9kW på Klaravik
Köp Varmluftsfläkt Malmbergs 9kW på Klaravik
för 1 år sedan
Allmän översikt
Allmän översikt
för 7 år sedan
VAD ALLA INNEBANDYSPELARE BEHÖVER UNDER JULGRANEN!!!
VAD ALLA INNEBANDYSPELARE BEHÖVER UNDER JULGRANEN!!!
för 3 år sedan
ASSIST - JULKLAPPSTIPS 6/24
ASSIST - JULKLAPPSTIPS 6/24
för 4 år sedan
Köp Grusflak på laxofäste med stödben på Klaravik
Köp Grusflak på laxofäste med stödben på Klaravik
för 1 år sedan
Köp Asfaltstrailer Parator STI 17-24 på Klaravik
Köp Asfaltstrailer Parator STI 17-24 på Klaravik
för 1 år sedan
Slik øker vi Max rep på Kraft Performance Center
Slik øker vi Max rep på Kraft Performance Center
för 6 år sedan
Renax Stängsel med Rotastar siktskopa RS13-20
Renax Stängsel med Rotastar siktskopa RS13-20
för 2 år sedan
Ord kan slå hårdt, Amagerskolen, 9.a
Ord kan slå hårdt, Amagerskolen, 9.a
för 7 år sedan
Dagstur till Örskars fyr  21 juli 2017
Dagstur till Örskars fyr 21 juli 2017
för 1 år sedan
Vil du låne til max 2,8%
Vil du låne til max 2,8%
för 1 år sedan
The JS Call Stack Explained In 9 Minutes
The JS Call Stack Explained In 9 Minutes
för 5 år sedan
JavaScript : "RangeError: Maximum call stack size exceeded" Why?
JavaScript : "RangeError: Maximum call stack size exceeded" Why?
för 1 år sedan
Salesforce: setCallback: Maximum call stack size exceeded (2 Solutions!!)
Salesforce: setCallback: Maximum call stack size exceeded (2 Solutions!!)
för 2 år sedan
How to Enable Inspect Element on iOS in 2 Ways!
How to Enable Inspect Element on iOS in 2 Ways!
för 4 år sedan
« Föregående
Nästa »
Den här frågan har 1 svar på engelska, för att läsa dem logga in på ditt konto.
Solution / Answer
 alex
alex
2011ör maj 2011 в 10:05
2011-05-23T10:05:44+00:00
Mer
Källa
Redigera
#12575549

Det betyder att du någonstans i din kod anropar en funktion som i sin tur anropar en annan funktion och så vidare, tills du når gränsen för anropsstacken.

Detta beror nästan alltid på en rekursiv funktion med ett basfall som inte uppfylls.

Visa stacken

Tänk på den här koden...

(function a() {
    a();
})();

Här är stacken efter en handfull anrop...

Web Inspector

Som du kan se växer anropsstapeln tills den stöter på en gräns: webbläsarens hårdkodade stackstorlek eller att minnet är uttömt.

För att åtgärda detta bör du se till att din rekursiva funktion har ett basfall som kan uppfyllas...

(function a(x) {
    // The following condition 
    // is the base case.
    if ( ! x) {
        return;
    }
    a(--x);
})(10);
Mark Amery
Mark Amery
Redigerat svar 2013ör december 2013 в 10:30
560
0
 lucygenik
lucygenik
2012ör april 2012 в 1:58
2012-04-23T01:58:01+00:00
Mer
Källa
Redigera
#12575550

Det kan ibland hända att du får detta om du råkar importera/embedja samma JavaScript-fil två gånger, vilket är värt att kontrollera på fliken Resurser i inspektören.

 double-beep
double-beep
Redigerat svar 2019ör maj 2019 в 9:42
78
0
Aaron Digulla
Aaron Digulla
2011ör maj 2011 в 9:55
2011-05-23T09:55:25+00:00
Mer
Källa
Redigera
#12575547

Det finns en rekursiv slinga någonstans i din kod (dvs. en funktion som så småningom anropar sig själv igen och igen tills stacken är full).

Andra webbläsare har antingen större stackar (så att du får en timeout i stället) eller så sväljer de felet av någon anledning (kanske en dåligt placerad try-catch).

Använd felsökaren för att kontrollera anropsstacken när felet uppstår.

29
0
Lägg till en fråga
Kategorier
Alla
Teknik
Kultur / fritid
Livet / Konst
Vetenskap
Professionell
Företag
Användare
Alla
Ny
Populära
1
Daniel Gogov
Registrerad för 1 vecka sedan
2
工藤 芳則
Registrerad för 2 veckor sedan
3
Ирина Беляева
Registrerad för 2 veckor sedan
4
Darya Arsenyeva
Registrerad för 2 veckor sedan
5
anyta nuam-nuam (LapuSiK)
Registrerad för 3 veckor sedan
CS
DA
DE
EL
ES
FI
FR
ID
IT
JA
LT
NL
NO
PT
RO
RU
SK
SV
TR
ZH
© kzen.dev 2023
Källa
stackoverflow.com
under licens cc by-sa 3.0 med angivande av