Недавно веб -странице проекта должна отображать время сервера в режиме реального времени. Если время сервера загружается через AJAX в секунду, будет создано большое количество запросов.
Таким образом, комбинация «самостоятельных часов Javscript» и «времени загрузки сервера Ajax» была разработана для отображения времени сервера. «Саморельтизантные часы Javscript» автоматически работают с определенного начального времени в качестве отправной точки, «Ajax загружает время сервера» обновляет время сервера «Самоупомянутые часы Javscript» каждые 60 секунд.
Javscript Self-Clock:
Кода -копия выглядит следующим образом:
/**
* Файл: sc_clock.js
* Версия: 1.0.0
* Автор: Лулихон
* Дата: 2014-06-06
* Desc: автоматически запуск часов
*
* Copyright: открытый исходный код, используйте, как вам нравится, пожалуйста, держите голову.
*/
/**
* Формат вывод
* @returns
*/
String.prototype.format = function () {
var args = аргументы;
вернуть this.replace (// {(/d+)/}/g, function (m, i) {return args [i];});
};
/**
* Преобразовать в числа
* @returns
*/
String.prototype.toint = function (defaultv) {
if (this === "" ||! (/^/d+$/. test (this))) return defaultv;
вернуть Parseint (это);
};
window.scclock =
{
Год: 2014,
месяц: 1,
день: 1,
час: 0,
минута: 0,
Второе: 0,
Isrunning: ложь,
/**
* Функция, которая отображает время, передаваемое вызывающим абонент при вызове функции запуска.
*/
showfunc: function () {},
/**
* Инициализация
*/
init: функция (y, mon, d, h, min, s) {
this.year = y;
this.onth = mon;
this.day = d;
this.hour = h;
this.minute = мин;
this.second = s;
},
/**
* Время инициализации: Формат времени: 2014-06-09 11:30:30
*/
UpdateTime: function (время) {
var arr = time.split (/[/-//:]/);
if (arr.length! = 6) return;
this.year = arr [0] .toint (2014);
this.onth = 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);
},
/**
* Время обновления: Формат времени: 2014-06-09 11:30:30
*/
UpdateTime: function (время) {
var arr = time.split (/[/-//:]/);
if (arr.length! = 6) return;
this.year = arr [0] .toint (2014);
this.onth = 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);
},
/**
* начинать
*/
запуск: function (func) {
if (this.isrunning) возврат;
this.isrunning = true;
this.showfunc = func;
window.settimeout ("scclock.addonesec ()", 1000);
},
/**
* Заканчивать
*/
выключение: function () {
if (! this.isrunning) возвращение;
this.isrunning = false;
},
/**
* Получите время
*/
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);
},
/**
* Добавить одну секунду
*/
addonesec: function () {
это. Second ++;
if (this.second> = 60) {
this.second = 0;
this.minute ++;
}
if (this.minute> = 60) {
this.minute = 0;
this.hour ++;
}
if (this.hour> = 24) {
this.hour = 0;
this.day ++;
}
Switch (this.Month) {
Случай 1:
Случай 3:
Случай 5:
Случай 7:
Случай 8:
Случай 10:
Случай 12: {
if (this.day> 31) {
this.day = 1;
this.month ++;
}
перерыв;
}
Случай 4:
Случай 6:
Случай 9:
Случай 11: {
if (this.day> 30) {
this.day = 1;
this.month ++;
}
перерыв;
}
Случай 2: {
if (this.isleapyear ()) {
if (this.day> 29) {
this.day = 1;
this.month ++;
}
} else if (this.day> 28) {
this.day = 1;
this.month ++;
}
перерыв;
}
}
if (this.month> 12) {
this.onth = 1;
this.year ++;
}
this.showfunc (this.getDateTime ());
if (this.isrunning)
window.settimeout ("scclock.addonesec ()", 1000);
},
/**
* Обнаружение того, является ли это прыжкового года: правило для судейства легальных лет состоит в том, что его можно разделить на 4, но его можно разделить на 100, но его можно разделить на 400, чтобы быть лечебным годом.
*/
ISleApyear: function () {
if (this.year % 4 == 0) {
if (this.year % 100! = 0) вернуть true;
if (this.year % 400 == 400) возврат true;
}
вернуть ложь;
}
};
Код вызова:
Кода -копия выглядит следующим образом:
/**
* Начало системное время
*/
function startupClock () {
if (window.scclock) {
window.scclock.startup (function (time) {
$ ("#curtrime"). Текст (время);
});
}
}
/**
* Система загрузки
*/
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 -дисплей код:
Кода -копия выглядит следующим образом:
<span id = "curtrime"> </span>