Baru -baru ini, halaman web proyek perlu menampilkan waktu server secara real time. Jika waktu server dimuat melalui AJAX per detik, sejumlah besar permintaan akan dihasilkan.
Oleh karena itu, kombinasi "jam self-running javscript" dan "AJAX Loading Server Time" dirancang untuk menampilkan waktu server. "Javscript Self-Running Clock" berjalan secara otomatis dari waktu awal tertentu sebagai titik awal, "AJAX Loading Server Time" memperbarui waktu server untuk "Javscript Self-Running Clock" setiap 60 detik.
JAVSCRIPT Mandiri Self-Running Clock:
Salinan kode adalah sebagai berikut:
/*!
* File: sc_clock.js
* Versi: 1.0.0
* Penulis: Lulihong
* Tanggal: 2014-06-06
* Desc: jam menjalankan secara otomatis
*
* Hak cipta: Sumber terbuka, gunakan sesuka Anda, harap jaga kepala Anda.
*/
/**
* Format output
* @returns
*/
String.prototype.format = function () {
var args = argumen;
kembalikan this.replace (// {(/d+)/}/g, function (m, i) {return args [i];});
};
/**
* Konversi ke angka
* @returns
*/
String.prototype.toint = function (defaultv) {
if (this === "" ||! (/^/d+$/. test (this))) return defaultV;
mengembalikan parseint (ini);
};
window.scclock =
{
Tahun: 2014,
Bulan: 1,
Hari: 1,
Jam: 0,
menit: 0,
Kedua: 0,
isrunning: false,
/**
* Fungsi yang menampilkan waktu, diteruskan oleh penelepon saat memanggil fungsi startup.
*/
showfunc: function () {},
/**
* Inisialisasi
*/
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;
},
/**
* Inisialisasi Waktu: Format Waktu: 2014-06-09 11:30:30
*/
UpdateTime: function (time) {
var arr = time.split (/[/-///:]/);
if (arr.length! = 6) kembali;
this.year = arr [0] .toint (2014);
this.month = arr [1] .toint (1);
this.day = arr [2] .toint (1);
this.hour = arr [3] .toint (0);
this.minute = arr [4] .toint (0);
this.second = arr [5] .toint (0);
},
/**
* Perbarui Waktu: Format Waktu: 2014-06-09 11:30:30
*/
UpdateTime: function (time) {
var arr = time.split (/[/-///:]/);
if (arr.length! = 6) kembali;
this.year = arr [0] .toint (2014);
this.month = arr [1] .toint (1);
this.day = arr [2] .toint (1);
this.hour = arr [3] .toint (0);
this.minute = arr [4] .toint (0);
this.second = arr [5] .toint (0);
},
/**
* awal
*/
startup: function (func) {
if (this.isrunning) kembali;
this.isrunning = true;
this.showfunc = func;
window.setTimeout ("scclock.addonesec ()", 1000);
},
/**
* Menyelesaikan
*/
shutdown: function () {
if (! this.isrunning) kembali;
this.isrunning = false;
},
/**
* Dapatkan waktu
*/
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)? ("0" + this.day): this.day;
var shour = (this.hour <10)? ("0" + this.hour): this.hour;
var sminute = (this.minute <10)? ("0" + this.minute): this.minute;
var ssecond = (this.second <10)? ("0" + this.second): this.second;
return fmtstring.format (this.year, smonth, sday, shour, sminute, ssecond);
},
/**
* Tambahkan satu detik
*/
addonesec: function () {
this.econd ++;
if (this.second> = 60) {
this.econd = 0;
this.minute ++;
}
if (this.minute> = 60) {
this.minute = 0;
this.hour ++;
}
if (this.hour> = 24) {
this.hour = 0;
this.day ++;
}
sakelar (this.month) {
Kasus 1:
Kasus 3:
Kasus 5:
Kasus 7:
Kasus 8:
Kasus 10:
Kasus 12: {
if (this.day> 31) {
this.day = 1;
this.month ++;
}
merusak;
}
Kasus 4:
Kasus 6:
Kasus 9:
Kasus 11: {
if (this.day> 30) {
this.day = 1;
this.month ++;
}
merusak;
}
Kasus 2: {
if (this.isleapyear ()) {
if (this.day> 29) {
this.day = 1;
this.month ++;
}
} lain jika (this.day> 28) {
this.day = 1;
this.month ++;
}
merusak;
}
}
if (this.month> 12) {
this.month = 1;
this.year ++;
}
this.showfunc (this.getDateTime ());
if (this.isrunning)
window.setTimeout ("scclock.addonesec ()", 1000);
},
/**
* Deteksi apakah itu tahun kabisat: Aturan untuk menilai tahun -tahun lompatan adalah bahwa ia dapat dibagi dengan 4, tetapi dapat dibagi dengan 100, tetapi dapat dibagi dengan 400 menjadi tahun kabisat.
*/
isleapyear: function () {
if (this.year % 4 == 0) {
if (this.year % 100! = 0) mengembalikan true;
if (this.year % 400 == 400) mengembalikan true;
}
mengembalikan false;
}
};
Kode panggilan:
Salinan kode adalah sebagai berikut:
/**
* Mulai waktu sistem
*/
function startupclock () {
if (window.scclock) {
window.scclock.startup (function (time) {
$ ("#Currtime"). Teks (waktu);
});
}
}
/**
* Memuat waktu sistem
*/
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);
}
Kode tampilan HTML:
Salinan kode adalah sebagai berikut:
<span id = "Currtime"> </span>