最近两个月事儿比较多,也比较懒,不太想写东西。现在呢事儿还是很多,但是想写了——再不写就全忘啦,所以。。。
从这几天做的一个小程序开始写吧。
这个小程序主要是用来提醒人某个游戏还有多少时间BOSS就要出来了赶紧去打(类似是这种倒计时的东西啦,具体是个什么鬼我也不知道,不玩游戏的人伤不起啊),用的servlet+html+js,为啥?因为要保存游戏数据,因为其他的语言都不熟悉啊,因为客户催的特别紧。只能这样子啦。
基本界面如下:
可写的功能有:操作xml文件、一个页面开多个计时器、在页面上将文字合成语音并播放出来、列表排序。
这里先来说操作xml。
操作xml比较简单,网上的例子也很多,这里直接粘下我自己的代码,别的就不多说了。
1、系统用到的全局变量声明:
/*********配置项开始***********************************************/ var intervalTime = 1*60*1000;//一分钟执行一次 var remindTime = 5;//提醒时间,默认为提前5分钟进行提醒 /*********配置项结束***********************************************/ var xmlhttp=null; var tableName = "tableList"; var maxID = 0;//主键ID var timerMap = new Map();//计时器数组 //各个td的下标 var orderIndex = 0;//序号所在td的下标 var checkboxIndex = 1;//复选框 var gameNameIndex = 2;//游戏名称 var intervalIndex = 3;//间隔 var tempIntervalIndex = 4;//临时间隔 var cutDownIndex = 5;//倒计时 var btnIndex = 6;//操作按钮 var startBtnIndex = 0;//开始按钮的下标 var endBtnIndex = 1;//停止按钮的下标 var deleteBtnIndex = 2;//删除按钮 var tableObj = null;//列表排序用的参数 //播报语音用的参数 var lan="zh";//lan=zh:语言是中文,如果改为lan=en,则语言是英文。 var ie = "UTF-8";//ie=UTF-8:文字格式。 var spd = 5;//spd=2:语速,可以是1-9的数字,数字越大,语速越快。 //text=**:这个就是你要转换的文字。 var url="http://tts.baidu.com/text2audio?lan="+lan+"&ie="+ie+"&spd="+spd+"&text=";
2、加载xml文件并显示到页面上:
$(function(){ //开始读取数据 loadXML('data/data.xml');//读取到xml文件中的数据 }); //加载xml文档 var loadXML = function (xmlFile) { //获取xmlhttp对象 if (window.ActiveXObject) {//IE浏览器 xmlhttp = new ActiveXObject('Microsoft.XMLDOM'); //alert("IE浏览器"); }else if(window.XMLHttpRequest){//谷歌,火狐,Opera等 xmlhttp = new window.XMLHttpRequest(); //alert("其他浏览器:"+xmlhttp); } if(xmlhttp==null){ alert("您的浏览器不支持XMLHttp,请更换其他浏览器,如谷歌、火狐") return false; }else{ //alert("浏览器支持XMLHttpRequest"); xmlhttp.open("GET",xmlFile,false); xmlhttp.onreadystatechange = function(){ //alert(xmlhttp.readyState+"\n"+xmlhttp.status); if (xmlhttp.readyState == 4 && (xmlhttp.status == 200 || xmlhttp.status == 304)) { // 304未修改 //var xmlDoc = xmlhttp.responseXML.documentElement; var xmlDoc = xmlhttp.responseXML; // console.log("abc"+$(xmlDoc).length); loadData(xmlDoc);//加载xml文件 return false; } }; //xmlhttp.onreadystatechange = loadData; xmlhttp.send(null); } } //该方法用来加载xml数据 var loadData = function(xmlDoc){ var $doc = $(xmlDoc); //table名称 if($doc.find("tableName").length>0){ $("#tableName").text($doc.find("tableName").text()); } //提醒时间 if($doc.find("remindTime").length>0){ remindTime = parseInt($doc.find("remindTime").text()); } setRemindTime();//修改提醒时间 //加载游戏信息 var html = ""; var id = null; $(xmlDoc).find("bosses").children().each(function(i){ id = parseInt($(this).children("id").text()); if(id>maxID){maxID = parseInt(id);} html +=&