2013-04-02 2 views
-2
$(document).ready(function() { 
    $('#bb').modal(); 
}); 

로드시 부트 스트랩 모달을로드 중입니다. 하지만 모든 부하에 모달을 표시하고 싶지는 않습니다. 그것은 "이전로드 후 60 분이 지났는지 보여줄 것"과 같아야합니다.1 시간이 지나면 jquery로드 모달이됩니다.

모든 사용자가 동일한 IP 주소를 사용하기 때문에 IP 주소를 기록 할 수 없습니다.

jquery로만이 작업을 수행 할 수 있습니까 ('시간이 처음 5 분이면 표시'와 같을 수 있습니다)?

다른 옵션은 무엇입니까?

+0

을 운전보다는 콘텐츠 비동기를 다시로드 고려할 수 있습니다. – Frildoren

+0

PHP에서 사용자 SESSION을 사용하십시오 ... 현재 시간과 동일한 1 키 (last_time)를 저장하십시오. 그리고 각 1 시간 차이에서 PHP에서 귀하의 Javascript 모달을로드하고 해당 세션 키를 현재 시간으로 업데이트하십시오. – Svetoslav

+0

글쎄, 당신은 * "이전로드 후 * 60 분이 지났는지 보여 주시겠습니까?"또는 * 시간 표시 시간의 처음 5 분입니다 "*? (** ** 다른 ** 답변 ** ** 다른 ** 요구 사항입니다.) –

답변

1

이 당신이 원하는 일을해야한다, 그러나 당신은 항상 document.ready() 내가 jQuery를 사용하고 쿠키와 시간을 확인

<!DOCTYPE html> 
<html> 
<head> 
<script> 
function getCookie(c_name) 
{ 
var i,x,y,ARRcookies=document.cookie.split(";"); 
for (i=0;i<ARRcookies.length;i++) 
    { 
    x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")); 
    y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1); 
    x=x.replace(/^\s+|\s+$/g,""); 
    if (x==c_name) 
    { 
    return unescape(y); 
    } 
    } 
} 

function setCookie(c_name,value,exminutes) 
{ 
var exdate=new Date(); 
exdate.setMinutes(exdate.getMinutes() + exminutes); 
var c_value=escape(value) + ((exminutes==null) ? "" : "; expires="+exdate.toUTCString()); 
document.cookie=c_name + "=" + c_value; 
} 

function checkCookie() 
{ 
var lastload=getCookie("lastload"); 

if (lastload!=null && lastload!="") 
    { 
    // no need to do anything 
    } 
else 
    { 
    // show/load modal 
    } 
    setCookie("lastload",1,60); 
} 
</script> 
</head> 
<body onload="checkCookie()"> 
</body> 
</html> 
+0

덧붙여서 setCookie ("lastload", 1,60); if 문 외부에서 항상 호출되므로 lastload 쿠키를 항상 재설정하는 효과가 있습니다. 이는 바람직하지 않을 수도 있습니다. 다른 곳으로 옮길 수도 있습니다. – vegetable21

1

자바 스크립트에 Date() 개체가 있습니다. 코드에서 시간을 확인하십시오. 시간의 처음 5 분이 모달로 표시됩니다. 그렇지 않으면 모달을 표시하지 않습니다.

var date = new Date(); 
if(date.getMinutes()<=5) 
{ 
    // display 
} 
else{ 
    // Dont display 
} 
+0

그리고 사용자가 해당 5 분 동안 100 번 페이지를 다시로드하는 경우? – Svetoslav

+0

모든 사용자가 별도로 작동하지는 않지만 모두 동일한 시간 동안 작동합니다. – thomas

4

만료 60 분의 쿠키를 설정하고 쿠키가 있는지 계속 확인할 수 있습니다. 그렇지 않으면 모달을 다시 보여줍니다.

좋은 jQuery 쿠키 플러그인 here이 있습니다.

쿠키의 만료 날짜를 60 분으로 설정하지 않거나 쿠키가 만료되지 않은 경우 쿠키가 생성 된 시간을 쿠키 내에 저장하고이 시간이 60 분 이상인지 확인할 수 있습니다 현재 시간에서 몇 분. 그렇다면 모달을 표시하고 쿠키 시간을 새로 고칩니다.

관련 문제