2010-06-20 8 views
7

Jquery 자동 새로 고침은 많은 브라우저 메모리를 사용합니다. 이것을 막을 수있는 방법이 있습니까? 나는 2 div를 3 초마다 새로 고쳤지만 최대 9 초와 15 초까지 움직였습니다. 브라우저가 깨질 때까지 메모리가 많이 남아있을 때까지 창을 열어두면 길어질 수있었습니다.Jquery 자동 새로 고침 div

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" ></script> 


<script> 
var auto_refresh = setInterval(
function() 
{ 
$('#details2').load('links2.php').fadeIn("slow"); 
}, 15000); // refresh every 10000 milliseconds</script> 
+0

당신은 이것을하기 위해 어떤 플러그인/코드를 사용하고 있습니까? – Matt

+2

일부 코드를 게시 할 수 있습니까? – Pointy

+0

<스크립트 유형 = "텍스트/자바 스크립트"SRC = "http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js">

답변

2

load()를 건너 뛰고 대신 $ .ajax를 사용할 수 있습니다. 나는 load()를 안다; 아약스 요청이지만 전체 스크립트를 가져옵니다. 스크립트를 요청하고 데이터베이스 계산을 수행 한 다음 json으로 데이터를 반환하십시오. 난 당신이 데이터베이스 요청에서 데이터와 완전한 HTML을 보내고 있다고 가정합니다. 대신 json을 사용해보십시오.

예를 들어 데이터를 개체로 가져옵니다.

{"variable":"foo"} 

다음 간단한 각 문으로 데이터를 가져올 수 있습니다.

$.ajax({ 
    url: "links2.php", 
    type: "POST", 
    dataType: "json", 
    success: function(data){ 

     // data here is returned as objects since it's json 
     $.each(data, function(key, value) { 
      $("#details2").empty().append(value.variable); 
     }); 

    } 
}); 

나는이 코드가 메모리를 유출해서 결국 브라우저를 중단시키지 않아도된다고 생각합니다. 시도 해보고 그것이 어떻게 진행되는지 알려주세요.

행운을 빈다.

+0

감사합니다 stefan, 이것은 작동하기에 충분 해 보인다. –

0

이로 변경합니다 : 그것은 HALP 수도

// ... 
$('#details2').empty().load('links2.php').fadeIn('slow'); 

그것을 어떤 이벤트 핸들러 등을 확보 할 수 있도록 명확하지 비록 명시 적으로 (먼저 용기를 비우 jQuery를 얘기하는이 거기에 어떤 핸들러가 될 것입니다 ...)

편집 — 실제로는 신경 쓰지 마세요; jQuery 소스를 확인한 결과 .html() (어느 load()이되는지, 나는 꽤 확신한다) 항상 empty()을 먼저 호출하는 것처럼 보입니다.

+0

나는 그것이 작동할지 모르는 사람이라면 누구나 시도해 볼 것입니다. 감사합니다 –

0

답변이 승인되었지만 그 사실을 알려야합니다. 나는 똑같은 문제가 있었다.

JQuery 파일의 src에서 문제가 발견되었습니다. 내 원본으로 JQuery 사이트 URL을 사용하고 yup을 사용하면 컴퓨터 사용이 99 %로 증가했습니다. 그런 다음 전체 JQuery 스크립트를 다운로드하여 웹 사이트 디렉토리에 저장했습니다. 소스에서 사용한 후 컴퓨터 사용이나 메모리에 문제가 없었습니다. 그것도 시도하십시오 ..