2017-01-13 6 views
2

В сложном JavaScript-приложении (с jQuery и jQueryUI) JavaScript будет иногда выдавать ошибку. Мы улавливаем и регистрируем эти ошибки, но stacktrace не показывает полное происхождение. До сих пор нам не удалось найти основную причину ошибки.Как отлаживать RangeError: Максимальный размер стека вызовов превышен без консоли разработчика

RangeError: Maximum call stack size exceeded 
at RegExp.[Symbol.replace] (native) at String.replace (native) 
at Function.camelCase (<jquery>) 
at Function.css (<jquery>) 
at Object.get (<jquery>) 
at init.cur (<jquery>) 
at init (<jquery>) 
at Function.Ya [as Tween] (<jquery>) 
at Object.createTween (<jquery>) 
at Object.r.Animation.r.extend.tweeners.* (<jquery>) 

и еще один:

RangeError: Maximum call stack size exceeded 
at RegExp.[Symbol.replace] (native) at String.replace (native) 
at Function.camelCase (<jquery>) 
at Function.css (<jquery>) 
at (<jquery>) 
at S (<jquery>) 
at a.fn.init.css (<jquery>) 
at HTMLImageElement.jc (<jquery>) 
at HTMLImageElement.e.complete (<jquery>) 
at i (<jquery>) 

Есть ли способ, чтобы добраться до возникновения ошибки без использования инструментария разработчика? Ошибки, по-видимому, происходят только в Chrome и не возникали, когда мы использовали более старую версию jQuery. (сейчас мы на 3.1.1)

ответ

1

Я думаю, мы обнаружили ошибку. В этом JSfiddle это происходит:

https://jsfiddle.net/c41bgs24/12/

function completeFunc(){ 
    var $this = $(this); 
    var fadeIn = $this.css("opacity") == 0; 
    console.log("complete", (new Date()).getTime()); 
    $this.animate({ 
    opacity: fadeIn ? 1 : 0 
    }, 2000, "linear", completeFunc); 
} 

// Make sure the tab is switched out within 3 seconds. This tab needs to be inactive when the timeout triggers for the bug to take place. 
setTimeout(function(){ 
    $("#test").each(completeFunc); 
}, 3000); 

Убедитесь, что вы вкладку из него, прежде чем 3 секунды, чтобы убедиться, что ошибка происходит.

Мы сделали отчет об ошибке JQuery об этом: https://github.com/jquery/jquery/issues/3507