jsp 및 jQuery로 작성된 채팅 응용 프로그램이 있습니다. 일부 URL에 요청을 지속적으로 게시하는 스레드에 대해 setTimeout 메서드를 사용했습니다. 잠시 후 브라우저가 멈추고 CPU 사용률이 매우 높습니다.jQuery의 성능을 향상시키는 방법
JS의 성능을 향상시킬 방법이 있습니까?
jsp 및 jQuery로 작성된 채팅 응용 프로그램이 있습니다. 일부 URL에 요청을 지속적으로 게시하는 스레드에 대해 setTimeout 메서드를 사용했습니다. 잠시 후 브라우저가 멈추고 CPU 사용률이 매우 높습니다.jQuery의 성능을 향상시키는 방법
JS의 성능을 향상시킬 방법이 있습니까?
확인이 하나 http://www.tvidesign.co.uk/blog/improve-your-jquery-25-excellent-tips.aspx#tip1
그것은이 같은 정말 좋은 추천 :
Firebug으로 디버깅 해 보셨습니까? 자바 스크립트를 디버깅하고 요청 및 응답을 모니터하는 등의 작업을 할 수 있습니다.
그럼 내가 (이 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); }
여기서 최적화에 대해 이야기하고 있으므로 clearInterval을 호출하기 전에 null을 확인해야 할 이유가 없다는 것을 언급해야합니다. 이것은 우리가 필요로하지 않는 추가주기입니다. –
Josh Stodola :이 간격을 처음 실행하면 null이되고 window.clearInterval (x)을 호출하면 x는 null입니다 ... 정말 null을 확인하는 것이 perf 페널티라고 생각합니까? –
간격을 지우고 새로운 간격을 설정해야하는 이유는 무엇입니까? 어느 쪽이든 항상'setTimeout()'을 사용하거나 간격을 그냥 두어야합니다. –
나는 귀하의 디자인을 의심합니다. –
일부 코드를 올리십시오. 나는 jQuery를 사용하지 않았다. – hasen
시간의 99 %, JS의 성능을 향상시키는 유일한 방법은 더 나은 코드를 작성하는 것입니다. 나는 당신이 언어 및/또는 그것이 어떻게 작동하는지 완전히 이해하지 못하고 있다고 생각합니다. –