>  기사  >  웹 프론트엔드  >  js와 서버 시간을 동기화하는 단계에 대한 자세한 설명

js와 서버 시간을 동기화하는 단계에 대한 자세한 설명

php中世界最好的语言
php中世界最好的语言원래의
2018-04-17 16:44:541475검색

이번에는 js와 서버 시간을 동기화하는 단계에 대해 자세히 설명하겠습니다. js와 서버 시간을 동기화할 때 주의 사항은 무엇입니까?

옵션 1: 서버로 이동하여 카운트다운마다 시간을 요청하세요.

//开启定时器
var timer = setInterval(function () {  
  //执行请求,获取当前服务端时间并进行相应操作
}, 1000);

이 솔루션은 경험이 적은 개발자에게는 바람직하지 않은 것으로 알려져 있습니다. 이는 서버에 상상할 수 없는 압력을 가하고 애플리케이션이 중단될 수 있기 때문입니다. 이 페이지에 1분 동안 머무르면 요청이 60번 전송됩니다. 이때 100명이 이 페이지를 방문한다면 1분에 6,000번의 요청이 발생하게 됩니다. 서버에 불필요한 압력을 가하게 됩니다. 또한 이 솔루션의 카운트다운에는 요청 지연이 있기 때문에 큰 오류가 발생하며 이는 네트워크 상태와도 밀접한 관련이 있습니다.

옵션 2: 서버 타임스탬프

//开启定时器
//假设请求获取到一个时间戳时间差 dateDiff
var timer = setInterval(function () {
  //每秒会获取本地时间,这样就算执行的周期不准确 也可以准确的获取时间差
  var countDown = endTime - (+Date.now())/1000 + dateDiff;
  // 倒计时页面渲染
}, 1000);

에서 서버 시간을 기준으로 카운트다운을 반환합니다. 장점:

페이지 생명주기에서 한 번 요청하면 정확도가 높습니다. 페이지가 오랫동안 열려 있어도 여전히 높은 정확도를 유지합니다
단점:

현재 시간은 1초마다 획득되므로 카운트다운 기간 동안 현지 시간을 고의로 수정하는 경우 카운트다운이 비정상적으로 이루어집니다.

이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 도서:

angularJS+Ionic은 모바일 이미지 업로드 기능을 구현합니다

BootStrap+Validator는 JS

에서 검증 기능을 작동합니다.

위 내용은 js와 서버 시간을 동기화하는 단계에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.