jquery에서 쿠키 정보 얻기, 하루에 한 번만 튀기

당일 웹 응용 프로그램을 처음 열었을 때(하루에 한 번)만 시작할 수 있다.
※ 프론트 데스크에서 쿠키 정보를 받아 표시합니다. 이 설치라면 클라이언트 측에서 캐시를 취소하면 다시 표시됩니다. 하지만 이번에는 고려하지 않습니다.

하고 싶은 일


jquery에서 브라우저의 쿠키 정보를 얻습니다. 이날 프로그램을 처음 열었을 때 튀는 것을 표시합니다.이 외에는 표시되지 않습니다.
※ 쿠키 정보를 얻고 업데이트하기 위해 사용js-cookie.
(자주 검색되는 jequery.cookie.js는 현재 지원이 종료되었습니다.)

실패한 방법


이번splash-container 학급명 관리로 튀었다.main류는main 라벨의 내용입니다.

$(function () {
  if (!Cookies.get('splash-container')) {
    $('.main').hide();
    $('.splash-container').show();
    setTimeout(() => {
      $('.splash-container').hide();
      $('.main').show();
    }, 3000);
    Cookies.set('splash-container', isOpen, {
      expires: 1,
      path: '/',
    });
  } else {
    $('.splash-container').hide();
    $('.main').show();
  }
});

상술한 내용은 다음과 같다.
① splash-container의 쿠키 정보 얻기
② 아무것도 등록하지 않은 경우 isOpen(1일 설정expires를 통해 정보가 하루 업데이트됨)을 부여하고 튀는 것을 표시한 후 메인 내용을 표시합니다
③ isOpen이 있을 때 정보를 표시하지 않음
이렇게 되면 컴퓨터에서 확인할 때는 잘 반영되지만, 스마트폰으로 확인할 때expires: 1 부분은 제대로 반영되지 않은 것 같아 잘 반영되지 않았다.

타당하다



$(function () {
  const today = new Date(new Date().getTime());
  if (!Cookies.get('splash-container')) {
    $('.main').hide();
    $('.splash-container').show();
    setTimeout(() => {
      $('.splash-container').hide();
      $('.main').show();
    }, 3000);
    Cookies.set('splash-container', today, {
      expires: 1,
      path: '/',
    });
  } else if (today - Cookies.get('splash-container') >= 86400000) {
    $('.main').hide();
    $('.splash-container').show();
    setTimeout(() => {
      $('.splash-container').hide();
      $('.main').show();
    }, 3000);
    Cookies.set('splash-container', today, {
      expires: 1,
      path: '/',
    });
  } else {
    $('.splash-container').hide();
    $('.main').show();
  }
});

① splash-container의 쿠키 정보 얻기
② 아무것도 등록하지 않은 경우 오늘의 날짜를 부여하고 튀는 것을 표시하고 메인 내용을 표시한다
③ 상기 조건 외에 쿠키 정보가 있더라도 오늘 날짜-cookie 정보(이전 쿠키 등록된 날짜 시간)에 따라 계산하여 1일(86400000) 이상 지나면 스파크 표시
④ 튀김이 표시되지 않음
이것은 도대체 좋은 방법입니까? 솔직히 좀 미묘하지만, 그래도 방법을 강구하여 하루에 한 번만 튀는 것을 보여 주려고 노력합니다.

좋은 웹페이지 즐겨찾기