2009-09-10 4 views
2

jsp 및 jQuery로 작성된 채팅 응용 프로그램이 있습니다. 일부 URL에 요청을 지속적으로 게시하는 스레드에 대해 setTimeout 메서드를 사용했습니다. 잠시 후 브라우저가 멈추고 CPU 사용률이 매우 높습니다.jQuery의 성능을 향상시키는 방법

JS의 성능을 향상시킬 방법이 있습니까?

+9

나는 귀하의 디자인을 의심합니다. –

+0

일부 코드를 올리십시오. 나는 jQuery를 사용하지 않았다. – hasen

+0

시간의 99 %, JS의 성능을 향상시키는 유일한 방법은 더 나은 코드를 작성하는 것입니다. 나는 당신이 언어 및/또는 그것이 어떻게 작동하는지 완전히 이해하지 못하고 있다고 생각합니다. –

답변

0

Firebug으로 디버깅 해 보셨습니까? 자바 스크립트를 디버깅하고 요청 및 응답을 모니터하는 등의 작업을 할 수 있습니다.

-2

그럼 내가 (이 JQuery와와는 아무 상관이없는 방법으로) 내가 무슨 짓을했는지 여기 전에이 물마루 실행

try { 
    window.clearInterval(x); 
} catch(e) { 
    // do nothing 
} 
x = setInterval(Update, 1000); 

귀하의 경우 당신이 사항 clearTimeout :

이 시도해야한다 :

refresh() { $.post("./chatServlet", { message: "hxci", name: $("#author").val(), event: "AUTOROOMMESSAGE", roomname: $("#select").val() }, function(xml) { $("#msg").empty(); addMessages(xml); }); try { window.clearInterval(x);} catch(e) {  }  x = setInterval(refresh, 3000); } 
+0

여기서 최적화에 대해 이야기하고 있으므로 clearInterval을 호출하기 전에 null을 확인해야 할 이유가 없다는 것을 언급해야합니다. 이것은 우리가 필요로하지 않는 추가주기입니다. –

+0

Josh Stodola :이 간격을 처음 실행하면 null이되고 window.clearInterval (x)을 호출하면 x는 null입니다 ... 정말 null을 확인하는 것이 perf 페널티라고 생각합니까? –

+0

간격을 지우고 새로운 간격을 설정해야하는 이유는 무엇입니까? 어느 쪽이든 항상'setTimeout()'을 사용하거나 간격을 그냥 두어야합니다. –

관련 문제