2013-07-12 4 views
0

jquery를 처음 사용했습니다. 나의 목적은 세션을 유지하기 위해 웹 서버에 요청을 보내는 것입니다. jsp 페이지에서 특정 URL을 호출하려면 아래 코드를 사용하고 있습니다. 몇 시간이 지나면 jquery에서 특정 URL을 반복적으로 호출하는 방법은 무엇입니까?

$.get('http://localhost/test.html',function(data,status) { 
    },'html'); 

나는 각 오초이 URL을 호출하기 위해 다음과 같은 방법으로 setInterval을 사용 :

<script> 

setInterval(
function() 
{ 
    //code goes here that will be run every 5 seconds. 
    $.get('http://localhost/test.html',function(data,status) { 
    },'html'); 
}, 5000); 

</script> 

내가 페이지를로드 할 때 호출하지 못하는 이유를 알아낼 수 없습니다입니다. 참고 :이 호출은 5 초마다 발생해야합니다.

제발 도와주세요. 인터넷을 많이 검색했습니다. 그러나 해결책을 찾을 수 없었습니다.

+0

당신은 당신이이 (제공 작업을해야했던 어떤 스크립트 태그가 어딘가에 jQuery를로드하고 코드 위에 표시됩니다). 서버를 보내는 데이터가''html ''인 것은 좀 이상하지만 작동해야합니다. –

+0

setInterval()에서 코드를 추출하고 다음과 같이 호출하면 어떨까요? 그것은 읽을 때 더 분명합니다. setInterval (function() {methodName();}, 10000); – Mez

답변

2

GET은 HTTP GET 호출이 멱등수이므로 (아무것도 변경하지 않으므로) 브라우저가 캐시 할 수 있기 때문에 가능합니다.

  1. 서버에 캐시 제어 헤더를 사용하거나 옵션을 지정할 수 있습니다 ajax의 긴 양식을 사용

  2. GET 대신 POST를 사용하거나

  3. : 당신은에 의해 것을 방지 할 수 있습니다 cache: false 옵션을 지정하십시오.

    FWIW, 당신의 get에 해당하는 ajax 호출, 플러스 cache 옵션은 다음과 같습니다 코드와

    $.ajax({ 
        url:  'http://localhost/test.html', 
        cache: false, 
        data: 'html', 
        success: function(data,status) { 
        } 
    }); 
    
+0

또는 "신선한"요청을 보내고 캐싱을 피하기 위해 호출에 타임 스탬프를 추가하십시오. –

+0

그리고 페이지가로드 될 때 캐시 문제로 보이지 않으므로 요청이 하나도 제출되지 않은 경우에도 마찬가지입니다. –

1

아무것도 잘못, 정말 작동하지 않는 경우, 그것은 주변 문제처럼 보인다 것 (캐싱, 누락 된 참조 등). 내가 코드를 시도하고 alert() 콜백에 전화를 삽입하고 완벽하게 작동하는 것 같습니다.

아마도 jQuery를 참조하는 것을 잊었거나 네트워크 트래픽을 분석하지 않았습니다. <head> 태그에서이 참조 넣어 :

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script> 

그리고 작업 코드 것은 내 작업 예제를

setInterval(
function() 
{ 
    //code goes here that will be run every 5 seconds. 
    $.get('http://localhost/test.html',function(data,status) { 
     alert('GET Request Happen!'); 
    },'html'); 
}, 5000); 

봐 : http://jsfiddle.net/RjKjQ/

관련 문제