2012-05-01 4 views
1

나는 AJAX 콘텐츠를로드하는 window.onload 함수가 있습니다. 방문자가 다른 페이지를보고 다시로드하려고 시도 할 때도 발생합니다 (이 과정에서 AJAX라고도 함). window.onload 함수가 다시 실행됩니다.window.onload 함수를 한 번만 실행할 수있는 방법이 있습니까?

window.onload 함수를 한 번만 실행할 수있는 방법이 있습니까 (캐시에 저장하는 등)?

+0

쿠키 또는 세션을 사용 하시겠습니까? – j08691

답변

3

AJAX가 완료되면 쿠키를 설정 한 다음 페이지를로드 할 때이 쿠키를 확인할 수 있습니다. 일부 의사 코드 : 여기

$(function() { 
    if (!$.cookie("page-viewed")) { 
     // call ajax & display 

     $.cookie("page-viewed", true); 
    } 
}); 

는 의견의 코드에 기초 jQuery cookie plugin


업데이트

에 대한 링크, 당신은 다음과 같이 쿠키 플러그인을 사용합니다 :

$(window).load(function() { 
    if (!$.cookie("page-viewed")) { 
     $('#pages_holder').hide(0).delay(2500).fadeIn(1200, 'swing', {queue:false}); 
     $('#za').rotate3Di('+=360', 1000, {queue:false}, 'easeInOutCubic'); 
     $('.za').show().switchClass("za", "nas",500, 'easeOutQuad').switchClass("nas", "zavur6en", 1250, 'easeInOutCubic').delay(2000).hide(0) 
     $.ajax({ 
      url : 'pages/zanas.php', 
      success : function(response) { 
       $("#pages").html(response); 
      } 
     }); 
     $.cookie("page-viewed", true); 
    } 
}); 
+0

나는 쿠키를 사용한 적이 없다. 그것이 내 코드라면 무엇을해야합니까? ' $ (window). (function() { $ ('# pages_holder '). hide (0) .delay (2500) .fadeIn (1200, '진동', {큐 : ​​FALSE}.) \t $ ('#의 ZA') rotate3Di ('+ = 360', 1000 {큐 : ​​FALSE} 'easeInOutCubic'); \t \t $ ('. switchClass ("nas", "zavur6en", 1250, 'easeInOutCubic'). 지연 (2000). 숨기기 (0)) \t $ 아약스 ({ URL : '페이지/zanas.php', 성공 : 기능 (응답) { $ ("# 페이지") HTML (응답) }.}}); \t }); ' –

+0

엉망으로해서 죄송합니다! –

+0

답변을 업데이트했습니다. –

0
<script type="text/javascript"> 
    $(function() { 
     // Have your onload ajax here 
    }); 
</script> 

페이지 당 한 번 이상이 실행되는 것을 본 적이 없습니다.

+0

그러나 이것은 모든 페이지로드시에도 계속 실행됩니까? –

+0

페이지로드를 정의 하시겠습니까? –

+0

페이지가로드 될 때마다 ....? –

관련 문제