2011-05-13 6 views
2

이 질문은 내 이전 질문에 따라 달라집니다 : Browser crashes after 10-15 mins 그 질문에 나는 내 코드가 메모리 누출을하고 있다고 대답했다. 그래서 메모리 누수가 발생하는 지점을 찾으려고합니다.이 JavaScript 스크립트로 인해 메모리 누수가 발생합니까?

이 스크립트는 메모리 누수가 발생합니까?

var j = function (i, q, r, a) { 
     return function (s) { 
      var p = r.annotation; 
      if (p.hasOwnProperty(i)) { 
       p[i](p, r, a.dygraph_, s) 
      } else { 
       if (a.dygraph_.attr_(q)) { 
        a.dygraph_.attr_(q)(p, r, a.dygraph_, s) 
       } 
      } 
     } 
    }; 

그렇다면 메모리 누출을 방지하기 위해 할 수있는 해결책이 있습니까? 메모리 누수가있는 경우

+0

어딘가에 루프가 발생하지 않으면 브라우저 충돌이 발생하는 것처럼 보이지 않습니다. –

+0

@Cobra_Fats :'g = new Dygraph (..')를 호출 할 때마다 –

+0

자바 스크립트에서 메모리가 누출 될 가능성이 있습니까? – Pwnna

답변

1

그것은 분명 아니지만,이 내 코드 인 경우에, 나는 그렇게 (나쁜 변수 이름은 제외)과 같이 변경합니다 :

var j = function (i, q, r, a) { 
    var p = r.annotation, 
     dygraph = a.dygraph_; 

    return function (s) { 
     if (p.hasOwnProperty(i)) { 
      p[i](p, r, dygraph, s); 
     } else { 
      var aqExpression = dygraph.attr_(q); 

      if (aqExpression) { 
       aqExpression(p, r, dygraph, s); 
      } 
     } 
    }; 
}; 
0

그것은 당신처럼하지 않습니다 ' 그 코드로 메모리가 누출되었습니다.

일반적으로 메모리 누수는 DOM 요소가 포함될 때 발생합니다.

이 가이드는 JavaScript의 메모리 누수 패턴 및 디버그 방법에 대해 작성했습니다 : http://www.vladalexandruionescu.com/2012/08/javascript-memory-leaks.html. 희망이 있으면 유용 할 것입니다.

관련 문제