In letzter Zeit muss die Serverzeit auf der Projektwebseite in Echtzeit angezeigt werden. Wenn die Serverzeit jede Sekunde über Ajax geladen wird, wird eine große Anzahl von Anforderungen generiert.
Deshalb haben wir eine Kombination aus „Javascript Self-Running Clock“ und „Ajax Loading Server Time“ entwickelt, um die Serverzeit anzuzeigen. Die „selbstlaufende Javascript-Uhr“ läuft automatisch ab einer bestimmten Anfangszeit als Startpunkt, und die „Ajax-Ladeserverzeit“ aktualisiert die Serverzeit alle 60 Sekunden auf die „selbstlaufende Javascript-Uhr“.
selbstlaufende Javascript-Uhr:
/ *!
* Datei: sc_clock.js
* Version: 1.0.0
* Autor: LuLihong
* Datum: 2014-06-06
* Beschreibung: Wird automatisch ausgeführt Uhr
*
* Urheberrecht: Open Source, verwenden Sie es nach Belieben, bitte halten Sie den Kopf gesenkt.
*/
/**
* Formatierte Ausgabe
* @returns
*/
String.prototype.format = function() {
var args = arguments
return this.replace(/{ (d )}/g, function(m, i){return args[i];});
/**
* In Zahl umwandeln
* @returns
*/
String.prototype.toInt = function(defaultV) {
if (this === "" || !(/^d $/.test(this))) return defaultV;
window.scClock =
{
Jahr: 2014,
Monat: 1,
Tag: 1,
Stunde: 0,
Minute: 0,
second : 0,
isRunning : false,
/**
* Eine Funktion, die die vom Aufrufer beim Aufruf der Startfunktion übergebene Zeit anzeigt.
*/
showFunc : function(){},
/**
* Initialisierung
*/
init : function(y, mon, d, h, min, s){
this.year = y;
this.month = mon;
this.day = d; 🎜>this.hour = h;
this.minute = min;
this.second = s;
/**
* Initialisierungszeit: Zeitformat: 09.06.2014 11:30:30
*/
updateTime : function(time) {
var arr = time.split(/[- :]/
if (arr.length != 6) return; ].toInt(2014);
this.month = arr[1].toInt(1);
this.day = arr[2].toInt(1); 3].toInt(0);
this.minute = arr[4].toInt(0);
this.second = arr[5].toInt(0);
/**
* Aktualisierungszeit: Zeitformat: 09.06.2014 11:30:30
*/
updateTime : function(time) {
var arr = time.split(/[- :]/);
if (arr.length != 6 ) return;
this.year = arr[0].toInt(2014)
this.month = arr[1].toInt(1); ].toInt(1);
this.hour = arr[3].toInt(0);
this.minute = arr[4].toInt(0); 5].toInt(0);
},
/**
* Starten Sie
*/
startup : function(func) {
if (this.isRunning) return; >this.isRunning = true;
this.showFunc = func;
window.setTimeout("scClock.addOneSec()", 1000);
/**
* Ende
*/
shutdown : function() {
if (!this.isRunning) return;
this.isRunning = false
},
/**
* Nehmen Sie sich Zeit
*/
getDateTime : function() {
var fmtString = "{0}-{1}-{2} {3}:{4}:{5}";
var sMonth = (this .month < 10) ? ("0" this.month) : this.month; var sDay = (this.day < 10) : this.day; >var sHour = (this.hour < 10) ? ("0" this.hour) : this.hour
var sMinute = (this.minute < 10) : this.minute;
var sSecond = (this.second < 10) ? ("0" this.second) : this.second
return fmtString.format(this.year, sMonth, sHour, sMinute, sSecond);
},
/**
* Eine Sekunde hinzufügen
*/
addOneSec : function() {
this.second; = 60) {
this.minute = 0;
this.minute ;
if (this.minute >= 60) {
this.minute = 0; this.hour ;
}
if (this.hour >= 24) {
this.hour = 0;
this.day ;
switch(this.month ) {
Fall 1:
Fall 3:
Fall 5:
Fall 7:
Fall 8:
Fall 10:
Fall 12: {
if ( this.day > 31) {
this.day = 1;
this.month ;
break; 🎜>Fall 9:
Fall 11: {
if (this.day > 30) {
this.day = 1;
}
break;
}
Fall 2: {
if (this.isLeapYear()) {
if (this.day > 29) {
this.day = 1; Monat ;
}
} else if (this.day > 28) {
this.day = 1;
this.month ;
}
if (this.month > 12) {
this.month = 1;
this.year ;
this.showFunc(this.getDateTime ());
if (this.isRunning)
window.setTimeout("scClock.addOneSec()", 1000); >*/
isLeapYear : function() {
if (this.year % 4 == 0) {
if (this.year % 100 != 0) return true; .year % 400 == 400) return true;
return false;
};
呼叫程式碼:
/**
* 開始系統時間
/**
* 載入系統時間
*/
function startupClock() {
if (window.scClock) {
window.scClock.startup(function(time){
$("#currTime").text(time);
});
}
}
/***/
function loadSystemTime() {
var jsonData = {
"ajaxflag": 1,
"mod": "time_mod"
};
$.getJSON(ajax_sc_url, jsonData, function(data){
if (data.code==0) {
if (window. scClock)
window.scClock.updateTime(data.time);
}
});
setTimeout("loadSystemTime()", 60000);
}
html顯示代碼: