2014-02-27 3 views
0

페이지로 리디렉션되는 버튼이 있습니다. 리디렉션하려는 페이지의 PHP 스크립트에는 몇 분이 걸립니다. PHP 스크립트를 기다리는 동안 setInterval-scheduler가 jQ AJAX로 컨텐츠를 새로 고치기를 원하지만 리디렉션이로드되는 동안 실행되지 않는 것 같습니다. 어떤 아이디어?

코드 :

heartbeatInterval = 10000; 
$(document).ready(
    function() { 

     console.log('Document got ready.') 

     setInterval(function() { 
      heartbeat(); 
     }, heartbeatInterval); 
}); 

$('#button').click(function() { 
    window.location.href = '/...'; 
}); 

function heartbeat() { 

console.log('Heartbeat triggers.'); 

$.ajax({ 
    url : action_heartbeat, 
    type : 'POST', 
    data : 'test', 
    success : function(response) { 
     $('#status').css('color', 'green').html($('#status').html() + '<br>Connected: ' + response); 
     console.log('Heartbeat finishes.'); 
    }, 
    error : function(xhr, message) { 
     $('#status').css('color', 'red').html($('#status').html() + '<br>Connection lost: ' + message); 
    } 
}); 

} 
+0

우리는 많은 아이디어를 가지고 있습니다. 우리가 당신을 도울 수 있도록 코드를 우리와 공유하고 싶습니까? –

+0

몇 가지 코드를 보여주십시오. 또한 내가 조사 할 첫 번째 이유는 페이지가 실행되는 데 몇 분이 걸리는 이유입니다. 그리고 여러분의 코드가 동일한 스크립트에 여러 개의 연속 된 요청을 보내더라도 느리게 실행할 수 있다고 상상합니다. –

+0

긴 PHP 스크립트는 다음과 같습니다. 좋아, 그것은 많은 물건을 생성하고 몇 분은 좋은 성능입니다. Ajax 요청으로 호출하는 PHP 스크립트는 동일하지 않습니다. 그 중 하나는 약 100ms 걸립니다. – Aich

답변

0

이 가능하지 않을 수 있습니다. PHP (서버 측)는 자바 스크립트 (클라이언트 측)보다 먼저 실행됩니다.

그래서 PHP를 먼저 완료해야합니다. 페이지에 삽입 된 iframe에서 PHP를 실행하는 방법이있을 수 있습니다. 실행중인 자바 스크립트가있는 페이지를 더 빨리로드 할 수 있습니다.

+0

내가 추가 한 스 니펫을보십시오. 대상 페이지에서 자바 스크립트를 실행하고 싶지 않습니다. 그러나 버튼을 클릭하면 하트 비트 기능이 더 이상 Ajax 요청을 호출하지 않습니다. – Aich

관련 문제