- 浏览: 1072976 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (453)
- Struts2 (30)
- Spring (14)
- iBATIS (6)
- Hibernate (13)
- JVM (5)
- JSON (10)
- Ajax (5)
- Flex (1)
- JavaScript (25)
- PowerDesigner (4)
- 项目管理 (7)
- 数据库 (29)
- 生活 (18)
- 软件应用 (21)
- 无线技术 (2)
- Linux (39)
- TOP开发学习 (2)
- JAVA工具小TIPS (2)
- Java通用 (52)
- XML (3)
- 软件测试 (29)
- Maven (10)
- Jquery (1)
- 正则表达式 (3)
- 应用服务器 (15)
- Android (5)
- linux 和windowx 下 tomcat 设置JVM (8)
- 应用服务器 连接池 (4)
- Linux 后台输出中文乱码 (1)
- Hadoop (28)
- python (2)
- Kafka (7)
- Storm (5)
- Elasticsearch (7)
- fddd (1)
最新评论
-
kafodaote:
Kafka分布式消息系统实战(与JavaScalaHadoop ...
分布式消息系统Kafka初步 -
小灯笼:
LoadRunner性能测试实战课程网盘地址:http://p ...
LoadRunner性能测试应用(八) -
成大大的:
Kafka分布式消息系统实 ...
分布式消息系统Kafka初步 -
hulalayaha2:
Loadrunner性能测试视频教程下载学习:http://p ...
LoadRunner性能测试应用(八) -
993042835:
搞好 谢谢
org.hibernate.exception.ConstraintViolationException: could not delete:
脚本1:进入主页以后自动播放声音 <embed src="pnm://10.13.31.90/~kayvin/mihunji.rm" hidden=true autostart=true loop=true> 脚本2:进入主页后自动最大话,省的去在自己单击了 <script> self.moveTo(0,0) self.resizeTo(screen.availWidth,screen.availHeight) </script> 脚本3:显示现在时间的脚本 <script language=vbscript>document.write now</script> 脚本4:显示最后修改时间的脚本 <script>document.write(document.lastModified)</script> 脚本5:设为首页,加为收藏,加入频道,启动outlook发信 <a style="cursor:hand" onclick="this.style.behavior="url(#default#homepage)"; this.setHomePage(http://jb51.net/);">">设为首页</a> <a style="cursor:hand" onclick="window.external.AddFavorite(location.href,document.title);">加入收藏</a> <a href=javascript:window.external.addChannel("typhoon.cdf")>加入频道</a> <a href=douxy001@gmail.com>与我联系</a> 脚本6:状态栏动态显示现在时间 <script> function see(){ window.setTimeout("see()",1000); today = new Date(); self.status = today.toString(); } </script> <body onload=see()> 脚本7:关闭窗口的脚本 <a href=javascript:close()>[关闭窗口]</a> 脚本8:按下F12键,直接返回首页 <script>function look(){ if(event.keyCode==123){document.location.href=http://10.13.31.90/~kayvin/} } if(document.onkeydown==null) {document.onkeydown=look} </script> 脚本9:后退,刷新,前进 <input type=button value=后退 onclick=history.go(-1)> <input type=button value=刷新 onclick=history.go(-0)> <input type=button value=前进 onclick=history.go(+1)> 脚本10:设定时间弹出窗口,4000=4秒,当然你可以自定义 <script>function l() { window.open(" 10.13.31.90/~kayvin/ ","name","width=500,height=150,border=0") } setTimeout("l()",4000) </script> 脚本11:鼠标旁边的提示信息,类似与163登录后的页面提示效果 <a href="#" title="这是提示">tip</a> <script Language="JavaScript"> //***********默认设置定义.********************* tPopWait=50;//停留tWait豪秒后显示提示。 tPopShow=5000;//显示tShow豪秒后关闭提示 showPopStep=20; popOpacity=99; //***************内部变量定义***************** sPop=null; curShow=null; tFadeOut=null; tFadeIn=null; tFadeWaiting=null; document.write("<style type='text/css'id='defaultPopStyle'>"); document.write(".cPopText { background-color: #F8F8F5;color:#000000; border: 1px #000000 solid;font-color: font-size: 12px; padding-right: 4px; padding-left: 4px; height: 20px; padding-top: 2px; padding-bottom: 2px; filter: Alpha(Opacity=0)}"); document.write("</style>"); document.write("<div id='dypopLayer' style='position:absolute;z-index:1000;' class='cPopText'></div>"); function showPopupText(){ var o=event.srcElement; MouseX=event.x; MouseY=event.y; if(o.alt!=null && o.alt!=""){o.dypop=o.alt;o.alt=""}; if(o.title!=null && o.title!=""){o.dypop=o.title;o.title=""}; if(o.dypop!=sPop) { sPop=o.dypop; clearTimeout(curShow); clearTimeout(tFadeOut); clearTimeout(tFadeIn); clearTimeout(tFadeWaiting); if(sPop==null || sPop=="") { dypopLayer.innerHTML=""; dypopLayer.style.filter="Alpha()"; dypopLayer.filters.Alpha.opacity=0; } else { if(o.dyclass!=null) popStyle=o.dyclass else popStyle="cPopText"; curShow=setTimeout("showIt()",tPopWait); } } } function showIt(){ dypopLayer.className=popStyle; dypopLayer.innerHTML=sPop; popWidth=dypopLayer.clientWidth; popHeight=dypopLayer.clientHeight; if(MouseX+12+popWidth>document.body.clientWidth) popLeftAdjust=-popWidth-24 else popLeftAdjust=0; if(MouseY+12+popHeight>document.body.clientHeight) popTopAdjust=-popHeight-24 else popTopAdjust=0; dypopLayer.style.left=MouseX+12+document.body.scrollLeft+popLeftAdjust; dypopLayer.style.top=MouseY+12+document.body.scrollTop+popTopAdjust; dypopLayer.style.filter="Alpha(Opacity=0)"; fadeOut(); } function fadeOut(){ if(dypopLayer.filters.Alpha.opacity<popOpacity) { dypopLayer.filters.Alpha.opacity+=showPopStep; tFadeOut=setTimeout("fadeOut()",1); } else { dypopLayer.filters.Alpha.opacity=popOpacity; tFadeWaiting=setTimeout("fadeIn()",tPopShow); } } function fadeIn(){ if(dypopLayer.filters.Alpha.opacity>0) { dypopLayer.filters.Alpha.opacity-=1; tFadeIn=setTimeout("fadeIn()",1); } } document.onmouseover=showPopupText; </script> 脚本12:如果文字过长,则将过长的部分变成省略号显示 <DIV STYLE="width: 120px; height: 50px; border: 1px solid blue; overflow: hidden; text-overflow:ellipsis"> <NOBR>就是比如有一行文字,很长,表格内一行显示不下.</NOBR> </DIV> 脚本13:滚动的图片 <script language="javascript"> imgArr=new Array() imgArr[0]="<a href=# onmouseMove='javascript:outHover=true' onMouseover='javascript:outHover=true' onMouseout='javascript:outHover=false;mvStart()'><img src=http://mc.mapabc.com/mapcard/images/LP_card_1.gif border=0></a>" imgArr[1]="<a href=# onmouseMove='javascript:outHover=true' onMouseover='javascript:outHover=true' onMouseout='javascript:outHover=false;mvStart()'><img src=http://mc.mapabc.com/mapcard/images/LP_card_1.gif border=0></a>" imgArr[2]="<a href=# onmouseMove='javascript:outHover=true' onMouseover='javascript:outHover=true' onMouseout='javascript:outHover=false;mvStart()'><img src=http://mc.mapabc.com/mapcard/images/LP_card_1.gif border=0></a>" imgArr[3]="<a href=# onmouseMove='javascript:outHover=true' onMouseover='javascript:outHover=true' onMouseout='javascript:outHover=false;mvStart()'><img src=http://mc.mapabc.com/mapcard/images/LP_card_1.gif border=0></a>" imgArr[4]="<a href=# onmouseMove='javascript:outHover=true' onMouseover='javascript:outHover=true' onMouseout='javascript:outHover=false;mvStart()'><img src=http://mc.mapabc.com/mapcard/images/LP_card_1.gif border=0></a>" var moveStep=4 //步长,单位:pixel var moveRelax=100 //移动时间间隔,单位:ms ns4=(document.layers)?true:false var displayImgAmount=4 //视区窗口可显示个数 var divWidth=220 //每块图片占位宽 var divHeight=145 //每块图片占位高 var startDnum=0 var nextDnum=startDnum+displayImgAmount var timeID var outHover=false var startDivClipLeft var nextDivClipRight function initDivPlace(){ if (ns4){ for (i=0;i<displayImgAmount;i++){ eval("document.divOuter.document.divAds"+i+".left="+divWidth*i) } for (i=displayImgAmount;i<imgArr.length;i++){ eval("document.divOuter.document.divAds"+i+".left="+divWidth*displayImgAmount) } }else{ for (i=0;i<displayImgAmount;i++){ eval("document.all.divAds"+i+".style.left="+divWidth*i) } for (i=displayImgAmount;i<imgArr.length;i++){ eval("document.all.divAds"+i+".style.left="+divWidth*displayImgAmount) } } } function mvStart(){ timeID=setTimeout(moveLeftDiv,moveRelax) } function mvStop(){ clearTimeout(timeID) } function moveLeftDiv(){ if (ns4){ for (i=0;i<=displayImgAmount;i++){ eval("document.divOuter.document.divAds"+parseInt((startDnum+i)%imgArr.length)+".left=document.divOuter.document.divAds"+parseInt((startDnum+i)%imgArr.length)+".left-moveStep") } startDivClipLeft=parseInt(eval("document.divOuter.document.divAds"+startDnum+".clip.left")) nextDivClipRight=parseInt(eval("document.divOuter.document.divAds"+nextDnum+".clip.right")) if (startDivClipLeft+moveStep>divWidth){ eval("document.divOuter.document.divAds"+nextDnum+".clip.right="+divWidth) eval("document.divOuter.document.divAds"+startDnum+".left="+divWidth*displayImgAmount) eval("document.divOuter.document.divAds"+parseInt((nextDnum+1)%imgArr.length)+".left=document.divOuter.document.divAds"+nextDnum+".left+"+divWidth) eval("document.divOuter.document.divAds"+parseInt((nextDnum+1)%imgArr.length)+".clip.left=0") startDnum=(++startDnum)%imgArr.length nextDnum=(startDnum+displayImgAmount)%imgArr.length startDivClipLeft=moveStep-(divWidth-startDivClipLeft) nextDivClipRight=moveStep-(divWidth-nextDivClipRight) }else{ eval("document.divOuter.document.divAds"+nextDnum+".clip.left=0") startDivClipLeft+=moveStep nextDivClipRight+=moveStep } eval("document.divOuter.document.divAds"+startDnum+".clip.left="+startDivClipLeft) eval("document.divOuter.document.divAds"+nextDnum+".clip.right="+nextDivClipRight) }else{ for (i=0;i<=displayImgAmount;i++){ eval("document.all.divAds"+parseInt((startDnum+i)%imgArr.length)+".style.left=document.all.divAds"+parseInt((startDnum+i)%imgArr.length)+".style.pixelLeft-moveStep") } startDivClipLeft=parseInt(eval("document.all.divAds"+startDnum+".currentStyle.clipLeft")) nextDivClipRight=parseInt(eval("document.all.divAds"+nextDnum+".currentStyle.clipRight")) if (startDivClipLeft+moveStep>divWidth){ eval("document.all.divAds"+nextDnum+".style.clip='rect(0,"+divWidth+","+divHeight+",0"+")'") eval("document.all.divAds"+startDnum+".style.left="+divWidth*displayImgAmount) eval("document.all.divAds"+parseInt((nextDnum+1)%imgArr.length)+".style.left=document.all.divAds"+nextDnum+".style.pixelLeft+"+divWidth) startDnum=(++startDnum)%imgArr.length nextDnum=(startDnum+displayImgAmount)%imgArr.length startDivClipLeft=moveStep-(divWidth-startDivClipLeft) nextDivClipRight=moveStep-(divWidth-nextDivClipRight) }else{ startDivClipLeft+=moveStep nextDivClipRight+=moveStep } eval("document.all.divAds"+startDnum+".style.clip='rect(0,"+divWidth+","+divHeight+","+startDivClipLeft+")'") eval("document.all.divAds"+nextDnum+".style.clip='rect(0,"+nextDivClipRight+","+divHeight+",0)'") } if (outHover){ mvStop() }else{ mvStart() } } function writeDivs(){ if (ns4){ document.write("<ilayer name=divOuter width=750 height="+divHeight+">") for (i=0;i<imgArr.length;i++){ document.write("<layer name=divAds"+i+">") document.write(imgArr[i]+" ") document.write("</layer>") } document.write("</ilayer>") document.close() for (i=displayImgAmount;i<imgArr.length;i++){ eval("document.divOuter.document.divAds"+i+".clip.right=0") } }else{ document.write("<div id=divOuter style='position:relative' width=750 height="+divHeight+">") for (i=0;i<imgArr.length;i++){ document.write("<div id=divAds"+i+" style='position:absolute;clip:rect(0,"+divWidth+","+divHeight+",0)'>") document.write(imgArr[i]+" ") document.write("</div>") } document.write("</div>") for (i=displayImgAmount;i<imgArr.length;i++){ eval("document.all.divAds"+i+".style.clip='rect(0,0,"+divHeight+",0)'") } } } </script> <BODY onload=javascript:mvStart()> <SCRIPT language=javascript>writeDivs();initDivPlace();</SCRIPT> 脚本14:接收键盘指令的脚本 按A就会跳转到地图名片的网页,请按A <SCRIPT language="JavaScript"> <!-- var hotkey=97 var destination="http://mc.mapabc.com" if (document.layers) document.captureEvents(Event.KEYPRESS) function backhome(e){ if (document.layers){ if (e.which==hotkey) window.location=destination } else if (document.all){ if (event.keyCode==hotkey) window.location=destination } } document.onkeypress=backhome onkeydown="javascript:onenter();" function onenter(){ if(event.keyCode==13){ alert("回车"); } } </SCRIPT> function onenter(){ if(event.keyCode==13){ alert("回车"); } } </SCRIPT> onkeydown="javascript:onenter();" function onenter(){ if(event.keyCode==13){ alert("回车"); } } </SCRIPT> function onenter(){ if(event.keyCode==13){ alert("回车"); } } </SCRIPT> onkeydown="javascript:onenter();" function onenter(){ if(event.keyCode==13){ alert("回车"); } } </SCRIPT> function onenter(){ if(event.keyCode==13){ alert("回车"); } } </SCRIPT> onkeydown="javascript:onenter();" function onenter(){ if(event.keyCode==13){ alert("回车"); } } </SCRIPT> function onenter(){ if(event.keyCode==13){ alert("回车"); } } </SCRIPT> 脚本15:让你的文本链接渐隐渐显 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <BODY> <script language="javascript" type="text/javascript"> startColor = "#671700"; // 定义链接颜色 endColor = "#D8D1C5"; // 定义要渐变到最后的颜色 stepIn = 17; stepOut = 23; /* 定义是否让所有的文本链接自动渐变,true为是,false为否 */ autoFade = true; /* 在这里定义css样式里的类class:fade,如果为true,那么你要将要渐变的链接上加上此fade样式 */ sloppyClass = false; hexa = new makearray(16); for(var i = 0; i < 10; i++) hexa[i] = i; hexa[10]="a"; hexa[11]="b"; hexa[12]="c"; hexa[13]="d"; hexa[14]="e"; hexa[15]="f"; document.onmouseover = domouseover; document.onmouseout = domouseout; startColor = dehexize(startColor.toLowerCase()); endColor = dehexize(endColor.toLowerCase()); var fadeId = new Array(); function dehexize(Color){ var colorArr = new makearray(3); for (i=1; i<7; i++){ for (j=0; j<16; j++){ if (Color.charAt(i) == hexa[j]){ if (i%2 !=0) colorArr[Math.floor((i-1)/2)]=eval(j)*16; else colorArr[Math.floor((i-1)/2)]+=eval(j); } } } return colorArr; } function domouseover() { if(document.all){ var srcElement = event.srcElement; if ((srcElement.tagName == "A" && autoFade) || srcElement.className == "fade" || (sloppyClass && srcElement.className.indexOf("fade") != -1)) fade(startColor,endColor,srcElement.uniqueID,stepIn); } } function domouseout() { if (document.all){ var srcElement = event.srcElement; if ((srcElement.tagName == "A" && autoFade) || srcElement.className == "fade" || (sloppyClass && srcElement.className.indexOf("fade") != -1)) fade(endColor,startColor,srcElement.uniqueID,stepOut); } } function makearray(n) { this.length = n; for(var i = 1; i <= n; i++) this[i] = 0; return this; } function hex(i) { if (i < 0) return "00"; else if (i > 255) return "ff"; else return "" + hexa[Math.floor(i/16)] + hexa[i%16];} function setColor(r, g, b, element) { var hr = hex(r); var hg = hex(g); var hb = hex(b); element.style.color = "#"+hr+hg+hb; } function fade(s,e, element,step){ var sr = s[0]; var sg = s[1]; var sb = s[2]; var er = e[0]; var eg = e[1]; var eb = e[2]; if (fadeId[0] != null && fade[0] != element){ setColor(sr,sg,sb,eval(fadeId[0])); var i = 1; while(i < fadeId.length){ clearTimeout(fadeId[i]); i++; } } for(var i = 0; i <= step; i++) { fadeId[i+1] = setTimeout("setColor(Math.floor(" +sr+ " *(( " +step+ " - " +i+ " )/ " +step+ " ) + " +er+ " * (" +i+ "/" + step+ ")),Math.floor(" +sg+ " * (( " +step+ " - " +i+ " )/ " +step+ " ) + " +eg+ " * (" +i+ "/" +step+ ")),Math.floor(" +sb+ " * ((" +step+ "-" +i+ ")/" +step+ ") + " +eb+ " * (" +i+ "/" +step+ ")),"+element+");",i*step); } fadeId[0] = element; } </script> </BODY> </HTML> 脚本18:DIV的透明层实现 <body bgcolor="#ff0ddd"> <div id="Layer1" style="position:absolute; width:260px; height:115px; z-index:1; left: 50px; top: 77px; filter:Alpha(opacity=30)"> <table width="96%" border="1" cellpadding="1" cellspacing="1" bordercolor="#FFFFFF" bgcolor="#999999"> <tr> <td height="25" bgcolor="#f5f5f5" class="13">你也可以在这里插入图片</td> </tr> <tr> <td height="20" bgcolor="#f5f5f5" class="12">你想注册地图名片吗</td> </tr> <tr> <td height="20" bgcolor="#f5f5f5" class="12">http://mc.mapabc.com</td> </tr> <tr> <td height="20" bgcolor="#f5f5f5" class="12">EMAIL:lipeng@mapabc.com</td> </tr> <tr> <td height="20" bgcolor="#f5f5f5" class="12">地址</td> </tr> <tr> <td height="20" bgcolor="#f5f5f5" class="12">邮编</td> </tr> </table> </div>
个人签名
-------------------------------------
发表评论
-
使用casperis模拟登陆淘宝的思路及源码
2014-09-17 10:31 4038http://www.xinzimi.com/629.htm ... -
Html中的textarea 的内容不居左显示问题
2011-07-04 10:54 3477我发现jsp页面的中textarea有时候不居左显示,而是在中 ... -
用JS确认删除的两种函数
2011-06-13 11:54 1518<script language="javas ... -
Js 获取当前日期时间及其它操作实现代码
2011-03-25 09:46 969myDate.getYear(); //获取当前年份(2位) ... -
js获得当前日期和时间的代码
2011-03-25 09:45 2043<html> <head> < ... -
使用flot绘图出现window.G_vmlCanvasManager is null or not an Object
2011-03-01 16:24 1672使用flot绘图出现window.G_vmlCanvasMan ... -
网站加密,防止截屏,打印,另存为
2011-01-17 11:05 37891、禁止另存网页,把如 ... -
DIV 随着滚动条 移动
2010-12-10 13:22 1741<!DOCTYPE html PUBLIC " ... -
js 实现图片预加载 (js操作 Image对象属性complete ,事件onload 异步加载...
2010-10-26 13:59 5909通过js操纵DOM很多情况下都是为了实现和当前页html元素的 ... -
一个小巧的图片预加载类...
2010-10-26 13:58 886<!DOCTYPE html PUBLIC " ... -
IE报缺少 冒号, firefox 正常。
2010-10-20 12:04 2795function onDataReceived(series ... -
JavaScript 在 Firefox下正常IE下报错的几个例子
2010-10-20 11:36 14921. json 数据中多余的逗号 : 代码 var m ... -
js function 返回值问题
2010-10-18 22:07 1267<script> function datach ... -
js 判断checkbox是否选中
2010-10-18 22:06 2273Java代码 //第几个没有选 <in ... -
input text 的一些事件
2010-10-10 10:13 4867<html> <head> < ... -
js正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等各类代码
2010-09-07 11:09 2617JS-只能输入中文和英文2008-11-08 10:17在js ... -
textarea文字怪异的居中解决办法
2010-09-02 11:16 1686textarea文字怪异的居中解决办法 每次文字从数据库 ... -
禁止另存,复制,右键,选取
2010-08-31 21:08 1183禁止另存代码: <noscript> ... -
动态监听文本框获取焦点与失去焦点事件
2010-08-25 11:27 3578<!DOCTYPE HTML PUBLIC " ... -
计算网页停留时间
2010-08-16 10:43 2499<html xmlns="http://www ...
相关推荐
脚本1:进入主页以后自动播放声音 <embed src=”pnm://10.13.31.90/~kayvin/mihunji.rm” hidden=true autostart=true loop=true> 脚本2:进入主页后自动最大话,省的去在自己单击了 [removed] self.move...
脚本1:进入主页以后自动播放声音<embed src=”pnm://10.13.31.90/~kayvin/mihunji.rm” hidden=true autostart=true loop=true> 脚本2:进入主页后自动最大话,省的去在自己单击了 [removed] self.moveTo...
33个JavaScript经典效果 实用且必用的小脚本代码
非常实用的单位转换脚本.建议设置快捷键,配合使用很方便。
今天上班,一个美女同事发给我一个“图片.vbe”的脚本文件,不疑有他,就...重启后,我灵机一动,用Notepad打开脚本,三下五除二,把它从一个害人不浅的恶作剧脚本改成了一个实用的可设定时间定时自动关机的小程序了。
Python这门语言很适合用来写些实用的小脚本,跑个自动化、爬虫、算法什么的,非常方便。 这也是很多人学习Python的乐趣所在,可能只需要花个礼拜入门语法,就能用第三方库去解决实际问题。 我在Github上就看到过...
JavaScript经典效果集锦(转) 转自:蓝色理想 申请加精,只有这样本帖子才不会沉下去,感觉这个帖子对大家很有用的!...一 实用且必用的小脚本代码: 脚本1:进入主页以后自动播放声音 复制内容到剪贴板
些很实用且必用的小脚本代码: 脚本1:进入主页以后自动播放声音 <embed src=”pnm://10.13.31.90/~kayvin/mihunji.rm” hidden=true autostart=true loop=true> 脚本2:进入主页后自动最大话,省的去在自己...
为了加强对JavaScript原生代码的编写能力,以及巩固setTimeout()的使用方法,制作了一个倒计时的demo,倒计时在现在的网站中算是一个常见的小功能,如果大家喜欢的话可以留下,就当作一个日常实用的小脚本。...
主要是用mvc模式开发的,jsp页面没有用表达式与小脚本,主要用的是jstl+EL表达式写的,对于刚刚学习jsp的人来说,看起来还是有一定的难度,但是你学会了那些东西,那就没有什么阻碍了!总体来说,很多实用的知识点都运用进去...
一 实用且必用的小脚本代码二 鼠标旁边的提示信息,类似与163登录后的页面提示效果三 如果文字过长,则将过长的部分变成省略号显示四 滚动的图片五 接收键盘指令的脚本六 让你的文本链接渐隐渐显七 类似与QQ的好友/黑...
第一次需要运行一个小脚本来放置一些需要的文件,如下: ./install_deps.sh测试我写了大约 120 sloc 来验证签名数据; 用于测试它的代码量超过两倍。 运行它们 lein test跑步要为应用程序启动 Web 服务器,请运行:...
Mailtop 是一个小脚本,它将解析(后缀)邮件日志文件并生成前 10 个: 邮件来自 邮寄到 延迟 smtp 代码 延期原因 用法 $ ./mailtop.py --help Usage: mailtop.py -f Options: -h, --help show this help ...
基本原理从历史上看,我使用Python编写快速的小脚本(我的大型长期项目往往会从中意外开发出来),但是维护用Python编写的大文件可能会陷入因为需要手动测试每个代码路径我会在进行更改时产生影响,或者投入大量精力...