ホームページ  >  記事  >  ウェブフロントエンド  >  サーバー time_javascript スキルを取得するための Javascript 実装

サーバー time_javascript スキルを取得するための Javascript 実装

WBOY
WBOYオリジナル
2016-05-16 15:58:231260ブラウズ

JS はサーバー上ではなくクライアント上で実行されるスクリプトです。一般に、JS を通じて時刻を取得する場合、Web ページ上の時刻を避けるために、取得される時刻は訪問者のローカル コンピューター上の時刻になります。コンピュータによっては、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>

思考分析:

サーバー側の時間の概念は非常に曖昧です。結局のところ、サーバー側は 1 台のマシンで構成されているわけではないからです。最も単純なケースでは、Web サーバーと DB サーバーにも分けられます。どれについて話しているのですか

Webサーバーの場合。
次に、java または .net で new Date() を直接使用します
Web ページの 3f1c4e4b6b16bbbd69b2ee476dc4f83a には新しい日付を追加しないでください。これは単なるクライアント時間です

データベースサーバーの場合。
データベースに接続し、SQL を通じて取得する必要があります。たとえば、Oracle の select sysdate from Dual です。

例:

js がそのようなサーバーサイドの時間を取得したい場合、多くの方法があります。考え方はほぼ同じです。
1.
055d9d5ff16d85d950bd3dee4f983fb7
var date = 13cc6fe3f2aabd10efb9182b1d0d4312
2cacc6d41bbb37262a98f745aa00fbf0

2.bba8f8188f9e1e1551427ba38711a9422cacc6d41bbb37262a98f745aa00fbf0
var nowDate = サーバー側の時間

となるように、サーブレットの戻りストリームを js ファイルに書き込みます。

3.ajax、これについては説明しません。インターネット上にたくさんあります

以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。