JS任务开发脚本 v0.03 (20100710)
需要jquery支持 用到的版本是jquery-1.4.2.js
更新日志:
0.01 建立了基本任务模型
0.02 改进了任务管理,扩展任务属性,优化多任务处理
0.03 支持动态修改任务,添加任务执行命令
说明:适用于各种定时任务应用,请注重劳动成果!保留说明文字,以便获得技术支持。
作者:康乐
发布与下载地址:www.javacs.cn中国java工作者
脚本开放,兼容FF/IE,难免有不足之处,希望在大家的帮助下改进和完善它。
欢迎参与此兴趣小组!你可以到 中国java工作者家园 【群组】找到【javascript兴趣小组】欢迎加入:
http://www.javacs.cn/home/space-mtag-tagid-3.html
一个很小的功能但非常实用,在B/S开发过程中会经常用上。
附件中包含:
naozhong.html (测试用)这个界面很粗糙
jquery-1.4.2.js
Multi-task.js
下载地址:http://www.javacs.cn/bbs/thread-300-1-1.html
/*!
任务开发脚本 v0.03 (20100710)
更新日志:
0.01 建立了基本任务模型
0.02 改进了任务管理,扩展任务属性,优化多任务处理
0.03 支持动态修改任务,添加任务执行命令
说明:适用于各种定时任务应用,请注重劳动成果!保留说明文字,以便获得技术支持。
作者:康乐
发布:[url=http://www.javacs.cn]www.javacs.cn[/url] 中国java工作者
*/
var AlarmTimeSet=new Date();
var Atimes =new Array();
//任务数据类
function kllz(a,b,c,d,e,f,g){
this.Aid=a;//编号
this.Atime=b;//时间
this.Atext=c;//提示内容
this.Amusic=d;//音乐
this.Aphoto=e;//图像
this.Ais=f;//是否提示
this.Acmd=g;//执行命令
}
//生成GUID
kllz.newGuid=function(){
var guid = "";
for (var i = 1; i <= 32; i++){
var n = Math.floor(Math.random()*16.0).toString(16);
guid += n;
if((i==8)||(i==12)||(i==16)||(i==20))
guid += "";
}
return guid;
}
//按index删除元素
Array.prototype.remove=function(dx)
{
if(isNaN(dx)||dx>this.length){return false;}
for(var i=0,n=0;i<this.length;i++)
{
if(this[i]!=this[dx])
{
this[n++]=this[i]
}
}
this.length-=1
}
//添加任务
kllz.addAtime =function()
{
//if(Atimes.length!=0)
//Atimes+={false};
var AlarmTime=new Date(AlarmTimeSet.getFullYear(),AlarmTimeSet.getMonth()+1,AlarmTimeSet.getDate(),$("#H").val(),$("#M").val(),$("#S").val());
var Aist=($('#Ais').attr('checked')) ? true : false;
var lz = new kllz(kllz.newGuid(),AlarmTime,$("#SMS").val(),$("#MUSIC").val(),$("#PHOTO").val(),Aist);
lz.Acmd=function(){
kllz.gxAtimes();
};
Atimes.push(lz);
$('#Ais').removeAttr("checked");
var i=Atimes.length;
var n=lz.Atime;
$('#t').prepend("<li id=\"time_"+lz.Aid+"\">第" + i + "个任务: " +n.getFullYear()+"-"+n.getMonth()+"-"+n.getDate()+" "+ n.getHours()+"-"+n.getMinutes()+"-"+n.getSeconds() +"\t提示内容:"+lz.Atext+"\t提示音乐:"+lz.Amusic+"\t提示图片:"+lz.Aphoto+"\t是否提示:"+lz.Ais+"<button onClick=\"kllz.delAtimeAid('"+lz.Aid+"')\">删除</button><button onClick=\"kllz.updAtimeAid('"+lz.Aid+"')\">修改</button>");
//gxAtimes();
AlarmClock();
}
//根据index删除任务元素
kllz.delAtime=function (i)
{
if(Atimes.length>0)
Atimes.remove(i);
$('#time_'+i).remove();
//gxAtimes();
}
//修改指定任务
kllz.updAtimeAid=function(Aid)
{
var AlarmTime=new Date(AlarmTimeSet.getFullYear(),AlarmTimeSet.getMonth()+1,AlarmTimeSet.getDate(),$("#H").val(),$("#M").val(),$("#S").val());
var Aist=($('#Ais').attr('checked')) ? true : false;
var lz = new kllz(Aid,AlarmTime,$("#SMS").val(),$("#MUSIC").val(),$("#PHOTO").val(),Aist);
//var ts =kllz.selAtimeAid(Aid);
//$.each(Atimes,ts,true);
if(Atimes.length>0)
{
$.each( Atimes, function(j, m){
var i=Atimes.length;
var n=lz.Atime;
if(m.Aid==Aid)
{
Atimes[j]=lz;
$('#time_'+lz.Aid).html("第" + i + "个任务: " +n.getFullYear()+"-"+n.getMonth()+"-"+n.getDate()+" "+ n.getHours()+"-"+n.getMinutes()+"-"+n.getSeconds() +"\t提示内容:"+lz.Atext+"\t提示音乐:"+lz.Amusic+"\t提示图片:"+lz.Aphoto+"\t是否提示:"+lz.Ais+"<button onClick=\"kllz.delAtimeAid('"+lz.Aid+"')\">删除</button><button onClick=\"kllz.updAtimeAid('"+lz.Aid+"')\">修改</button>");
}
if(j>=Atimes.length-1)return null;
});
}
}
//根据Aid返回 任务元素
kllz.selAtimeAid=function (idt)
{
$('#time_'+idt).remove();
if(Atimes.length>0)
{
$.each( Atimes, function(j, m){
if(m.Aid==idt)
{
return Atimes[j];
}
if(j>=Atimes.length-1)return null;
});
}
}
//根据Aid删除任务元素
kllz.delAtimeAid=function (idt)
{
$('#time_'+idt).remove();
if(Atimes.length>0)
{
$.each( Atimes, function(j, m){
if(m.Aid==idt)
{
Atimes.remove(j);
}
if(j>=Atimes.length-1)return;
});
}
//gxAtimes();
}
//更新任务
kllz.gxAtimes=function ()
{
$('#t').html("");
$.each( Atimes, function(i, m){
var n = m.Atime;
$('#t').prepend("<li id=\"time_"+m.Aid+"\">第" + (i+1) + "个任务: " +n.getFullYear()+"-"+n.getMonth()+"-"+n.getDate()+" "+ n.getHours()+"-"+n.getMinutes()+"-"+n.getSeconds() +"<button onClick=\"kllz.delAtimeAid('"+m.Aid+"')\">删除</button></li>");
if(i==Atimes.length-1)return;
});
}
//开启任务
AlarmClock=function ()
{
var TimeNowSet=new Date();
$.each( Atimes, function(i, m){
n=m.Atime;
//$('#w').prepend("Item #" + i + ": " + n +"");
//任务时间
//var AlarmTime=new Date(AlarmTimeSet.getFullYear(),AlarmTimeSet.getMonth()+1,AlarmTimeSet.getDate(),H.value,M.value,S.value);
var AlarmTime=n;
//当前时间
var TimeNow=new Date(TimeNowSet.getFullYear(),TimeNowSet.getMonth()+1,TimeNowSet.getDate(),TimeNowSet.getHours(),TimeNowSet.getMinutes(),TimeNowSet.getSeconds());
$('#w').html(i+"当前时间: " +TimeNowSet.getFullYear()+"-"+TimeNowSet.getMonth()+"-"+TimeNowSet.getDate()+" "+ TimeNow.getHours()+"-"+TimeNow.getMinutes()+"-"+TimeNow.getSeconds() +"");
if(TimeNow.getTime() == AlarmTime.getTime())
{//到时间时处理
}else if(AlarmTime.getTime() < TimeNow.getTime()){
//过时后处理
var id="_old_"+kllz.newGuid();
$('#time_'+m.Aid).html(" <b>时间到了</b>任务: " +n.getFullYear()+"-"+n.getMonth()+"-"+n.getDate()+" "+ n.getHours()+"-"+n.getMinutes()+"-"+n.getSeconds() +"<button onClick=\"kllz.delAtimeAid('"+id+"')\">删除</button>"+"");
$('#time_'+i).attr("id",id);
if(m.Ais)
{
$('#q').prepend("<li>任务提醒:"+m.Atext+"\t播放音乐<embed width='5px' height='5px' autostart='true' src="+m.Amusic+">\t图像:<img src='"+m.Aphoto+"'/><b>时间到了</b>任务: " +n.getFullYear()+"-"+n.getMonth()+"-"+n.getDate()+" "+ n.getHours()+"-"+n.getMinutes()+"-"+n.getSeconds() +"</li>");
}
Atimes.remove(i);
if(m.Acmd)m.Acmd();//回调执行命令
}
if(i>=Atimes.length-1)return false;
});
$('#cont').val(Atimes.length+"个活动的任务");
setTimeout("AlarmClock()",1000);
}
分享到:
相关推荐
PHP开源的任务/项目管理系统,时间跟踪和协作开发应用程序。它拥有一个流行的Ajax操作界面,在每个项目上都可以有用户和客户。
PESCMS TEAM开源任务管理系统是基于PESCMS衍生而来的产品, 以GPLv2开源协议发布,具备智能表单功能,可以让使用者避免实现一些重复的增删查改方法,丰富的注释和开发文档对于二次开发非常友好。PESCMS TEAM开源任务...
五子棋 - in html5是一款使用Javascript开发的开源小游戏
产品开源组件清单
C# 开发全套31个UI组件Winform 开源共享 开源 控件
Spug是一款使用Python Flask Vue Element组件开发的开源运维管理系统,系统前后端分离,帮助中小型企业完成主机、任务、发布部署、配置文件、监控、报警等管理。
用来生成无限极树状菜单的一个开源组件,经过优化,变得很轻巧。 组件描述:主要利用JavaScript的进行开发的。
项目概述:基于Python的Django框架开发的任务管理平台开源项目,融合了前端与后端的多种技术。该项目包含总共80个文件,其中主要编码语言为Python,同时涵盖了CSS、JavaScript和HTML等。文件类型分布如下:Python...
Butter.js用JavaScript实现一个功能完整的表格组件,供开源项目TaBest使用
WebBuilder是一款跨平台、数据库和浏览器的可视化Web应用开发平台。WebBuilder使用了多项最新的技术,使Web应用的开发更快捷和简单。 作为一款高效的Web开发工具,WebBuilder的特色是: .基于浏览器的集成开发环境 ...
用开源软件实现的超美javascript特效,绝无仅有,附完整开发包
开源代码使用指南 开源代码(Open Source):是促进软件发展的一种... Open Source许可证(Open Source License):能成为Open Source的Source都有一个许可证, 许可证说明规定了这段Open Source允许被应用的方法
开源报表打印组件JasperReports用法详解,开源报表打印组件JasperReports用法详解,开源报表打印组件JasperReports用法详解
[Winform开发全套31个UI组件开源共享]
流布局服务用于开发前端微服务开源组件
Layui 是一套开源免费的 Web UI 组件库,采用自身轻量级模块化规范,遵循原生态的 HTML/CSS/JavaScript 开发模式,极易上手,拿来即用。其风格简约轻盈,而内在雅致丰盈,甚至包括文档在内的每一处细节都经过精心...
组件化+Kotlin开发-一个充满设计感的开源App 项目初衷: 我们知道,Kotlin可以很大程度上提高我们编写代码的效率,而且完全兼容Java,支持lambda表达式、Null safe等,相信使用了Kotlin的朋友,都不会再想使用Java...
优秀的开源的用于响应式Web开发的HTML5 JavaScript组件套件。 为了推广学习DevExtreme在Asp.Net.Core中的应用,本源码在DevExpress19.2.4产品发布的基础上, 专门对DevExtreme进行了Asp.Net… 【项目资源】: 包含...
WebBuilder是一款跨平台、数据库和浏览器的可视化Web应用开发平台。WebBuilder使用了多项最新的技术,使Web应用的开发更快捷和简单。 作为一款高效的Web开发工具,WebBuilder的特色是: .基于浏览器的集成开发环境 ...
系统采用了JavaScript、PHP、Vue、CSS、HTML和Shell技术,实现了一款开源的在线项目任务管理工具。该工具提供了各类文档协作工具、在线思维导图、在线流程图、项目管理、任务分发、即时IM,文件管理等工具,并使用非...