2012-03-29 3 views
2

나는 작은 인트로와 함께 페이든 (fadein) 등을 가지고 있습니다. 그러나 나는 한 번만 실행하는 것이 좋을 것입니다. 사용자가 홈 페이지로 돌아올 때마다 소개를 실행하고 싶지 않습니다. js 파일을 한 번 실행하는 방법이 있습니까?js 파일을 한 번만 실행하십시오.

+1

신뢰할 수 없게 저장하십시오. – aaronasterling

+1

쿠키를 사용할 수는 있지만 신뢰할 수는 없습니다. IP 추적도 완벽하지 않습니다. 또한 로컬 스토리지는 사용자의 동의가 필요합니다. 짧은 대답 : 아니오. – Halcyon

+0

영원히 불리는이 나쁜 일이 있습니다. – Bakudan

답변

1

소개 기능을 실행할 때 먼저 나중에 설정할 쿠키를 확인하십시오. 쿠키가 존재하면 함수는 효과를 표시하지 않고 중단해야합니다. 쿠키가 존재하지 않으면 효과를 표시하고 쿠키를 설정하십시오.

물론이 솔루션은 웹 브라우저 설치마다 신뢰할 수 있습니다 (방문시 쿠키가 활성화되었다고 가정). 따라서 동일한 사용자가 다른 브라우저에서 사이트를 방문하면 효과를 다시 볼 수 있습니다. 반대로, 새로운 사용자가 이미 사이트를 방문한 브라우저를 사용하면 효과를 볼 수 없습니다.

완벽하지는 않지만 "충분히 좋은"것이므로 주된 유스 케이스를 포함하며 구현하기 쉽습니다.

2

한 가지 해결 방법은 HTML5 sessionStorage을 사용하여 인트로가 한 번 재생되었을 때를 녹음하는 것입니다. 이 메모리는 세션 동안 지속됩니다.

var played = sessionStorage.getItem("played"); 

if (played !== "true") { 

    // play intro 

    // mark as played when finished 
    sessionStorage.setItem("played", "true"); 
} 
+0

단순히 (세션) 쿠키를 사용하는 것보다 더 많은 비 호환성 문제가 발생하지 않습니까? – MrWhite

+2

@ w3d HTML5가 멋지다! 미래를 보증하십시오. 하지만 현실적으로 [이 표] (http://dev-test.nemikor.com/web-storage/support-test/)를 확인하십시오. 87 % 적용 범위와 비슷합니다. 그리고 만약 당신이 여전히 IE 6이나 7을 사용한다면 당신은 이미 당신이 그 인트로를 보았다는 것을 기억하기에는 너무 오래되었을 것입니다. – paislee

관련 문제