сбой firefox с angular (тролль сборщика мусора?)

---- РЕДАКТИРОВАТЬ вопрос был слишком длинным и трудным для понимания ------

Вот рабочий пример: http://codepen.io/anon/pen/Mwapgb ВНИМАНИЕ: Это сделает Firefox CRASH! , если вы осмелитесь, щелкните около 500 раз на любом div (я предлагаю использовать инструмент для его имитации. Rip mouse)

Но это http://codepen.io/anon/pen/eNNqde не приведет к сбою Firefox

В чем разница :

function GetDateFromDatetimePython(stringdate){ // IT CRASH
    var partieDate = stringdate.split(' ');
    var ymd = partieDate[0].split('-');
    var hms = partieDate[1].split(':');
    return new Date(Date.UTC(ymd[0],ymd[1]-1,ymd[2],hms[0],hms[1],hms[2],0));
}

function GetDateFromDatetimePython(stringdate){ // IT DON'T

    var partieDate = stringdate.split(' ');
        var tmp = partieDate[0];    //  add this
        var tmp2 = partieDate[1];   //  add this
    var ymd = tmp.split('-');       //  change this
    var hms = tmp2.split(':');     //  change this
    return new Date(Date.UTC(ymd[0],ymd[1]-1,ymd[2],hms[0],hms[1],hms[2],0));
}

Я схожу с ума. Что не так с первой практикой?

Хорошо, глупо делать 3 разделения, я мог бы объединить в 1. Когда бы ни. ПОЧЕМУ это взрывает firefox, почему это не влияет на Chrome и IE?


person ssbb    schedule 29.04.2015    source источник
comment
Мне любопытно... что именно вы делаете, когда говорите other tricks? Это трюки с интенсивным использованием памяти или процессора?   -  person alex    schedule 29.04.2015
comment
@alex чаще вылетает, когда я нажимаю на div ‹div ng-click=displayBox(vehicle)›   -  person ssbb    schedule 29.04.2015
comment
Что-то в этой функции, вероятно, тяжелое. Вы серьезно зацикливаетесь? Фрагмент кода этой функции был бы очень полезен.   -  person alex    schedule 29.04.2015
comment
Добавьте код displayBox. Я пытаюсь удалить анимацию и сделать базовый ng-show/ng-hide, но та же проблема.   -  person ssbb    schedule 29.04.2015
comment
Что, если вы просто удалите весь код из функции и просто добавите alert('test');. Ограничьте набор результатов, чтобы это было не 150 автомобилей, а 2 или 3. Кроме того, пожалуйста, исключите, что на самом деле это проблема кода, а не проблема браузера/локальной настройки Firefox. Я предполагаю, что это скорее ваш браузер, чем реальный код, поскольку он работает в Chrome (и особенно в IE). По этой ссылке можно узнать об использовании памяти в FF. Протестируйте на другой машине, которая использует FF, если это возможно?   -  person alex    schedule 29.04.2015
comment
Я не правильно описал проблему, она не появляется с первого клика. Это появляется, если я кликаю около 60 раз. Это значение каждый раз меняется. Иногда это 30 кликов, иногда около 100. Я тестирую с другим FF на другом компьютере. Та же проблема. Поэтому я ожидаю, что это проблема с моим кодом.   -  person ssbb    schedule 29.04.2015


Ответы (1)


Может быть, вы попали в какой-то бесконечный цикл или запущен процесс, который включает в себя тяжелую обработку, которая истощает всю память, доступную вашему браузеру.

person Ashish_B    schedule 04.05.2015
comment
ну, я даю почти все функции, я не нашел ни одного петлевого случая. Когда бы то ни было, почему это могло произойти на 60-м клике, а не раньше? :с - person ssbb; 04.05.2015
comment
не могли бы вы уточнить использование $scope.timeout здесь ... так как я не могу найти такую ​​​​переменную в вашем html-коде - person Ashish_B; 04.05.2015
comment
ну, это просто целочисленное значение между 300 и 900. Вот 600. - person ssbb; 04.05.2015