Heim  >  Artikel  >  Web-Frontend  >  Javascript-Implementierung zum Erwerb von Server-Time_Javascript-Kenntnissen

Javascript-Implementierung zum Erwerb von Server-Time_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 15:58:231260Durchsuche

JS ist ein Skript, das auf dem Client und nicht auf dem Server ausgeführt wird. Wenn die Zeit über JS abgerufen wird, ist die erhaltene Zeit die Zeit auf dem lokalen Computer des Besuchers, um die Zeit auf der Webseite zu verhindern von Änderungen aufgrund des Besuchers. Abhängig vom Computer müssen wir die Serverzeit direkt über JS abrufen.

Das Folgende ist der vollständige JS-Code zum Abrufen der Serverzeit. Es ist ein vollständiges Beispiel für die Verwendung von Javascript zum dynamischen Abrufen der Serverzeit.

<!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>

Denkanalyse:

Das Konzept der serverseitigen Zeit ist sehr vage. Weil die Serverseite möglicherweise doch nicht aus einer Maschine besteht. Im einfachsten Fall wird auch in Webserver und Datenbankserver unterteilt. Von welchem ​​redest du?

Wenn es sich um einen Webserver handelt.
Dann verwenden Sie einfach new Date() direkt in Java oder .net
Fügen Sie im e58c6cf2a6441afbe22ae07d07d1b07a kein neues Datum hinzu, das ist nur die Kundenzeit

Wenn es sich um einen Datenbankserver handelt.
Sie müssen eine Verbindung zur Datenbank herstellen und diese über SQL abrufen. Beispielsweise wählt Oracle sysdate aus dual aus.

Beispiel:

Wenn js eine solche serverseitige Zeit erhalten möchte, gibt es viele Methoden. Die Idee ist ungefähr die gleiche.
1.
4ec11beb6c39d0703d1751d203c17053
var date = 247492a66f6b9c2a6015e6e70d770690
2cacc6d41bbb37262a98f745aa00fbf0

2.bba8f8188f9e1e1551427ba38711a9422cacc6d41bbb37262a98f745aa00fbf0
Schreiben Sie den Rückgabestrom des Servlets in eine js-Datei, sodass var nowDate = serverseitige Zeit

ist

3.ajax, darüber werde ich nicht sprechen, es gibt viele davon im Internet

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn