最近项目网页需要实时显示服务器时间,如果每秒通过ajax加载服务器时间的话,就会产生大量的请求。
于是设计了“javscript自运行时钟” 和 "ajax加载服务器时间" 相结合的形式来显示服务器时间。“javscript自运行时钟” 以某初始时间为起点自动运行,"ajax加载服务器时间" 每60s将服务器的时间给“javscript自运行时钟” 更新。
javscript自运行时钟:
复制代码 代码如下:
/*!
* File: sc_clock.js
* Version: 1.0.0
* Author: LuLihong
* Date: 2014-06-06
* Desc: 自动运行的时钟
*
* 版权:开源,随便使用,请保持头部。
*/
/**
* 格式化输出
* @returns
*/
String.prototype.format = function() {
var args = arguments;
return this.replace(/\{(\d+)\}/g, function(m, i){return args[i];});
};
/**
* 转化为数字
* @returns
*/
String.prototype.toInt = function(defaultV) {
if (this === "" || !(/^\d+$/.test(this))) return defaultV;
return parseInt(this);
};
window.scClock =
{
year : 2014,
month : 1,
day : 1,
hour : 0,
minute : 0,
second : 0,
isRunning : false,
/**
* 显示时间的函数,调用者在调用startup函数时传入。
*/
showFunc : function(){},
/**
* 初始化
*/
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;
},
/**
* 初始化时间:时间格式:2014-06-09 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);
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(time) {
var arr = time.split(/[\-\ \:]/);
if (arr.length != 6) return;
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);
},
/**
* 开始
*/
startup : function(func) {
if (this.isRunning) return;
this.isRunning = true;
this.showFunc = func;
window.setTimeout("scClock.addOneSec()", 1000);
},
/**
* 结束
*/
shutdown : function() {
if (!this.isRunning) return;
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() {
this.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) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: {
if (this.day > 31) {
this.day = 1;
this.month++;
}
break;
}
case 4:
case 6:
case 9:
case 11: {
if (this.day > 30) {
this.day = 1;
this.month++;
}
break;
}
case 2: {
if (this.isLeapYear()) {
if (this.day > 29) {
this.day = 1;
this.month++;
}
} else if (this.day > 28) {
this.day = 1;
this.month++;
}
break;
}
}
if (this.month > 12) {
this.month = 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) return true;
if (this.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显示代码:
复制代码 代码如下:
<span id="currTime"></span>
相关推荐:
SEO资讯:最新趋势,提升网站排名,快速突破流量瓶颈,廊坊seo推广咨询服务
SEO定价策略:如何根据企业需求定制最佳价格方案,教育培训抖音营销推广
SEO优化顾问:让您的网站脱颖而出的秘密武器,ai ps 群
SEO快排还有效果吗揭秘快速排名的真相与未来趋势,ai人像波普
ChatGPT360:全方位提升你的工作与生活效率,ai72787
SEO流程全解析:如何提升网站流量与排名,账号如何营销推广
SEO攻略:搜索引擎优化,快速提升网站排名,网站推广网站优化费用
SEO百度优化:让你的品牌在搜索引擎中脱颖而出,日照网站推广策划
用AI优化文章,轻松提升内容质量与创作效率
SEO优化要钱吗?揭秘SEO投资背后的价值与回报,ai领域
seo软文用什么论坛,seo软文是什么意思 ,爱字幕的AI变脸不见了
OpenAI银联支付-未来支付新体验,安全便捷全新升级,医学加ai
了解SEO:让你的网站在搜索引擎中脱颖而出的秘密武器,宝山区常见网站优化
好用的AI写作工具,提升写作效率与创意的最佳选择
怎么用AI缩写文章,轻松提高效率的全新方法
ChatGPT:OpenAI的创新之作-一款颠覆传统的语言模型,ai球衣号
亚马逊中什么是seo,亚马逊sop ,ai临摹中国名画
SEO基础知识解析:如何提升网站排名,助力企业成长,毕节企业建设网站
什么是seo网站推广,什么是seo网站推广 ,ai酷男人
中外链:打通全球流量的桥梁,提升网站排名与流量的双重保障,行业网站建设思路
优化工具:提升工作效率的秘密武器,网站模板的优化策略是什么
ChatGPT登录503错误?轻松解决,快速恢复畅享智能体验!,ai怎么加植物材质效果
SEO永远,数字营销的核心力量,广州seo搜索栏内容
ChatGPT错误处理与异常情况解决方法:让你的AI助手更加智能与可靠,智能ai鼠标ai智能语音
seo站内链接有什么作用,seo中网站内链的作用 ,781900ai
ChatGPT5.0为什么一直没出来?背后的技术与战略,元宵节ai趣赏月
seo都有什么问题,seo都有什么问题和答案 ,ai凯旋公主下载
Bing无法使用怎么办?解决方法及替代方案推荐!,ai文字设计教程
seo用什么论坛引流,seo引流方法 ,ai写作续写神器
AI人工智能:改变未来的科技革命
文章AI生成软件高效创作新纪元
AI提取文章重要内容:让信息抓取更高效、更精准,松鼠ai 教学
SEM+SEO:助力企业数字化营销的双剑合璧之道,ai头像丑
未来写作新模式文章撰写AI如何助力内容创作
seo需要什么人员,seo需要什么技能 ,画大学ai
SEO元素-提升网站排名的核心要素,推广分成网站有哪些
《“查看更多”背后的秘密:让你的人生更加丰富多彩!》,宁安公司网站建设
SEO适合-提升网站排名的关键策略,张家口品牌推广营销中心
seo竞价做的什么工作,seo 竞价 ,office智能ai
什么是SEO优化方案,seo的优化方案 ,ai emorobot
ChatGPT中文版下载免费版:智能对话新时代,尽在,ai光波
seo需要学习什么语言,做seo需要懂什么技术 ,ai软件制作教程
在线AI文章生成器开启智能创作新时代
seo要公司什么资源,做seo需要用到什么软件 ,ai明星换了
ChatGPT3.5最新版:智能对话新纪元,带你进入AI的未来世界,ai苔藓生长
seo适合什么行业,seo适合的行业 ,在ai如何矢量化
优化服务网-提升客户体验,打造全方位智慧服务平台,东莞网站建设员招聘信息
AI免费文章生成器:轻松创作高质量内容的终极工具
用AI写文章,释放你的创作潜力!
如何快速写出高质量的AI文章:从入门到精通