현재는 js 카운트다운을 구현하는 것이 가능합니다. 하지만 페이지가 새로 고쳐지면 카운트다운이 바로 중지되거나 다시 시작됩니다.
그럼 뭐가 문제인가요?
페이지를 새로고침해도 카운트다운이 계속되도록 js를 어떻게 제어하나요?
지나가시는 분들께 한마디 부탁드립니다. 감사해요!
현재는 js 카운트다운을 구현하는 것이 가능합니다. 하지만 페이지가 새로 고쳐지면 카운트다운이 바로 중지되거나 다시 시작됩니다.
그럼 뭐가 문제인가요?
페이지를 새로고침해도 카운트다운이 계속되도록 js를 어떻게 제어하나요?
지나가시는 분들께 한마디 부탁드립니다. 감사해요!
카운트다운을 시작할 때 현지 시간을 가져와 쿠키나 로컬 저장소에 저장하고 새로 고친 후 시작 시간을 읽어 현재 시간을 뺍니다
서비스 워커에 대해 알아보기
각 새로고침은 새로운 기능 실행 환경이므로 새로고침 이전의 상태는 알 수 없습니다. 타이머의 시작 시간은 백그라운드에서만 가져오거나 현재 시간을 기준으로 계산할 수 있습니다.
쿠키나 로컬 저장소를 사용하세요.
자세한 내용은 제가 작성한 답변을 참조하세요
http://stackoverflow.com/a/38...
<code>1 php: 定义停止$end_time 2 html : <input type="hidden" name="end_time" id="end_time" value="$end_time"> 3 js:$("#end_time").val() </code>
의미를 이해하셔야 합니다
카운트다운이 시작되면 종료 시간을 localstorage에 저장하고 페이지를 새로 고쳐 localstorage 값을 읽은 다음 카운트다운 시간을 계산합니다
최근 카운트다운에 대해 문의하시는 분들이 계시는데요. 전에 간단하게 작성해두었으니 확인해 보세요.
매주 화요일 카운트다운 코드 찾기
카운트다운 시작 시간에 대한 클라이언트 시간을 얻으려면 js
을 사용하지 마세요. 서버 시간을 얻으려면 php
을 사용해 보세요js
.
로컬 스토리지 카운트다운을 작성해도 괜찮습니다
카운트다운 기능을 구현하려면 먼저 고정된 종료 시간이 있어야 합니다. 일반 논리 구현:
종료 시간을 카운트다운 방식에 전달하고, 종료 시간에서 현재 시간을 빼서 남은 시간을 구하고, 1초에 한 번씩 실행합니다. 현재 시간이 증가하고 남은 시간도 그에 따라 감소합니다.
그렇다면 종료시간이 정해져 있는 시간은 어디서 오는 걸까요? 1. 코드에 하드코딩된 시간 2. 백엔드에서 반환된 시간 3. 로컬 저장소. 종료 시간이 고정되어 있으면 카운트다운이 처음부터 시작되지 않습니다. 인터럽트는 카운트다운이 끝나거나 코드가 오류를 보고할 때만 발생합니다. 여러 개의 카운트다운이 동시에 존재하는 페이지 링크 설명을 작성했습니다
프런트 엔드를 제어해야 하는 경우 쿠키/웹 저장소와 같은 브라우저 저장소만 사용할 수 있습니다. 이렇게 하면 캐시를 삭제하지 않고도 동일한 브라우저에서 요구 사항을 충족할 수 있습니다. 브라우저를 변경하더라도 백엔드에서만 시간을 반환할 수 있습니다
[SMS 인증 보내기, 새로 고침 카운트다운 실패를 방지하기 위한 뒤로 버튼 카운트다운]
응용 시나리오에서 "SMS 인증 보내기" 기능을 개발할 때 악의적이거나 빈번한 SMS 인증 코드가 전송되는 것을 방지하기 위해 문제를 해결해야 합니다. . 일반적인 원칙은 "보내기 버튼을 클릭하면 SMS 인증 코드를 보내기 위해 Ajax 요청이 서버로 전송됩니다. 성공하면 보내기 버튼이 클릭 불가로 설정되고 호출이 설정됩니다. 원본 링크: https: //segmentfault.com/a/11.. .