>  기사  >  웹 프론트엔드  >  서버 time_javascript 기술을 얻기 위한 Javascript 구현

서버 time_javascript 기술을 얻기 위한 Javascript 구현

WBOY
WBOY원래의
2016-05-16 15:58:231217검색

JS는 서버가 아닌 클라이언트에서 실행되는 스크립트입니다. 일반적으로 JS를 통해 시간을 얻을 때 얻은 시간은 웹 페이지의 시간을 방지하기 위해 방문자의 로컬 컴퓨터에 있는 시간입니다. 방문자로 인해 변경되는 일이 없도록 컴퓨터에 따라 JS를 통해 직접 서버 시간을 얻어와야 합니다.

다음은 서버 시간을 가져오는 완전한 js 코드입니다. js는 서버 시간을 동적으로 가져오기 위해 javascript를 사용하는 완전한 예입니다.

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>AJAX获取服务器时间</title>
<script type="text/javascript">
    /*
     * ajax 函数,处理 ajax 请求
     * @param function callback 回调函数
     * @因为要和服务器交互,所以必须在服务器环境运行,不能在硬盘上直接打开
    */
    function ajax(callback){
        if(typeof callback!='function') return;
        var ajaxObject;
        try{
            ajaxObject=new XMLHttpRequest();
        }catch(e){
            try{
                ajaxObject=new ActiveXObject('Microsoft.XMLHTTP');
            }catch(e){
            }
        }
        if(!ajaxObject) return;
        if(ajaxObject.overrideMimeType){
            ajaxObject.overrideMimeType('text/html');
        }
        //location.href可以换成其他url,但必须是同一个站点的链接,并且文件存在
        ajaxObject.open('get',location.href);
        ajaxObject.send(null);
        ajaxObject.onreadystatechange=function(){
            if(ajaxObject.readyState==4){
                if(ajaxObject.status==200){
                    callback(ajaxObject);
                }
            }
        };
    }
    /*
     * 获取时间并动态刷新
    */
    function getTime(){
        ajax(
            function(ao){
                //只需要AJAX一次,将服务器时间获取后以毫米为单位保存到一个变量中
                _timestamp=Date.parse(ao.getResponseHeader('Date'));
                _timestamp=_timestamp.toString().match(/^\d$/)&#63;_timestamp:new Date().getTime();
                //设置定时器每过一秒动态刷新一次时间
                setInterval(
                    function(){
                        //这里可以自定义时间显示格式
                        document.getElementById('_timer').innerHTML=new Date(_timestamp).toLocaleString();
                        _timestamp+=1000;
                    },
                    1000
                );
            }
        );
    }
    window.onload=getTime;
</script>
</head>
<body>
    <div id="_timer">正在获取服务器时间……</div>
</body>
</html>

사고 분석:

서버측 시간의 개념은 매우 모호합니다. 결국 서버 측은 하나의 머신으로 구성되지 않을 수도 있기 때문입니다. 가장 간단하게는 웹서버와 DB서버로 나누어지기도 합니다. 어느 것을 말씀하시는 건가요

웹 서버인 경우.
그런 다음 java 또는 .net에서 직접 new Date()를 사용하세요.
웹페이지의 3f1c4e4b6b16bbbd69b2ee476dc4f83a에 새 날짜를 추가하지 마세요. 이는 클라이언트 시간일 뿐입니다

DB 서버인 경우.
데이터베이스에 연결하고 SQL을 통해 데이터베이스를 얻어야 합니다. 예를 들어, Oracle은 듀얼에서 sysdate를 선택합니다.

예:

js가 이러한 서버측 시간을 얻으려면 여러 가지 방법이 있습니다. 아이디어는 거의 같습니다.
1.
4ec11beb6c39d0703d1751d203c17053
var date = a8dfff2de0b37b2f40537f629a7f2716

2.bba8f8188f9e1e1551427ba38711a9422cacc6d41bbb37262a98f745aa00fbf0
var nowDate = 서버측 시간

이 되도록 서블릿의 반환 스트림을 js 파일에 작성합니다.

3.ajax, 이에 대해서는 이야기하지 않겠습니다. 인터넷에 많이 있습니다

위 내용은 이 글의 전체 내용입니다. 모두 마음에 드셨으면 좋겠습니다.

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