У меня возникают проблемы с переполнением стека Javascript на стороне клиента, особенно в браузере IE, это происходит внутри сторонней библиотеки, которая вызывает некоторые функции и по какой-то причине иногда тормозит в IE только из-за низкого стека. предел.
Затем я написал небольшой тестовый HTML-код для проверки предельного размера стека для некоторых браузеров и обнаружил, что IE8 фактически имеет небольшой предел стека по сравнению с FF 7 или Chrome 14, работающими на ноутбуке с ОС Windows 7, 8 ГБ ОЗУ:
<html>
<body>
<!-- begin Script: -->
<script type="text/javascript">
function doSomething(){
var i = 3200;
doSomethingElse(i);
}
function doSomethingElse(i){
if (i == 0) return -1;
doSomethingElse(i-1);
}
doSomething();
</script>
<!-- END OF PAGE -->
</body>
</html>
IE вызывает переполнение стека при значениях около 3200, Firefox и Chrome могут обрабатывать очень глубокую рекурсию по сравнению с IE.
Я хотел бы знать, есть ли способ связать исключение переполнения стека с функцией Javascript, которая вызвала его во время выполнения в IE или любом другом браузере, и может ли она передать трассировку стека с цепочкой функций в стеке на в момент возникновения ошибки.