有人能帮忙优化下这个暗黑3挂机脚本脚本吗?

 对于一般做网页的人员来说,可能在页面中使用脚本代码都比较随意。甚至于很多人在做网页的时候,脚本代码都是从别的网站上COPY过来的, 由于脚本的书写不规范,往往存在许多的浏览器不兼容的问题。而当要来修改脚本代码的时候却又无从下手,因为整个网页太乱了,网页中 的&script&标签总是这里一片,那里一片。同时,事件写法也不规范,网页中标签上一段onclick="...",调用另外一个地方定 义的函数,要修改这些东西,总要在网页中这儿去找那儿去找,大伤脑筋。本文就这些不良的习惯进行说明,告诉大家如何规范网页中的脚本,让脚本代码更易于维护。
  学习任何程序之前,无论是学java,还是C, 还是.net等等这些,老师都会告诉我们,注意代码的书写规范,注意转行,注意代码缩进! javascript当然也不例外,而且这些代码编写格式,在javascript中我们更加应该注意! 这是因为,javascript不像其它的编程语言,出错后有很强的错误提示。它出错后,在浏览器中往往只会显示一个很简短的错误提示信息,例如在IE浏览器下,那些脚本错误的提示往往让我们不知所以,甚至错在哪行都不知道(IE所报的错误行号还经常不准确),半天不知道错在哪里,累死累活,最后发现是某个地方少了个括号,或者某个地方多了个字符...... 有人说,我可以用火狐的firebug调试脚本(它的脚本调试功能的确很强大),是的,但是不要忘了,你写的程序还是要去兼容IE浏览器的,很多时候还是得去IE下面调试你的程序。写脚本的时候,我们往往会花大量的时间和精力去找错误,而本人一再强调书写规范、书写规范,也正是因为如此,我们可以将这种时间和精力的花费降到最低!我们来比较一下, 下面这两段有语法错误的示例性的代码吧:
function printHh(){
for(var i=1;i&6;i++){ if(i==3)
document.write(i+"&br /&");}
function printHh(){
&&&&& for(var i = 1; i & 6; i++){
&&&&&&&&&&& if( i == 3 )
&&&&&&&&&&& document.write(i + "&br /&");
   这两段代码是一样的,但是,相信您从示例2一看就知道错在哪儿,但是对于示例1,您还会那么容易的就找到错误原因吗?更何况这儿的示例代码只是寥寥几个语句,而我们实际编写的程序往往不会只有这么几行!
  本文就不再阐述怎么去缩进和转行了,如果您不清楚的,您应该去补习补习javascript的基础知识了。本文的重点在于讨论如何优化您的javascript脚本开发。而前面所说的,正是优化要做的首要事情&--&注意代码的转行和缩进。
  只注意代码的转行和缩进是远远不够的,我们还有很多事情要做。在制作网页的时候,网页中这儿一段脚本,那里一个onclick="..."的事件句柄,除了脚本之外还有css样式,还夹杂着动态程序的代码输出(例如asp的&%...%&片段,php的&? ... ?&片段,jsp或dot net里的动态标签等等),而我现在只想改我的脚本,不想去看其它的东西,这里问题就出来了,就好比你有一辆小汽车,无论它是奔驰宝马也好,还是QQ奥拓也罢,原本这辆车仅仅是轮胎有点问题,而当修车师博把轮胎修好了,却发现方向盘被弄坏了,遇到这种事情,是不是非常的郁闷呢?我想在编写网页的时候,您也不想成为像这样的&修车师博&吧?那么我们就应当把网页HTML代码和JS脚本进行分离!让我们只专注于脚本编写,而不会影响到其它的东西。好了,如何做到呢?
  要实现分离首先我们得把javascript脚本挑出来!那么动手吧,去找&script...& ...&/script&片段,把分散在HTML各处的多个这样的片段拼成一个。大多数情况是,这些片段里面是一些变量声明,函数定义之类的代码,可以合并,但是如果里面有document.write("...");语句就要注意了,合并之后,可能输出到别的地方去了。因此先不能动含有 document.write("...")的那些&script&片段。
  把我们能合并的&script&片段合并了,那么我们再把每个页面中都需要使用到的公共脚本放到一个单独的JS文件中去,并在 需要使用的页面中引入这个JS文件。把只有具体某一个页面用到的脚本,放在这个页面的head标签元素里面, 或者也把它单独存成一个文件,然后在这个页面加入&script src="..."&&/script&把它包含进来。这样,我们要改脚本的话,直接去对应的地方改就行了,不用到网页HTML代码中去翻找脚本片段了。
  下面举个例子,来说明本人是如何做的:
  例如我要做一个管理系统,里面大量应用了脚本,我的后台目录结构是像这样的:
/admin/&&&&&&&&&&&&&&&&&&&&&&&&&后台系统的根目录
&&&&&& /pro/ &&&&&&&&&&&&&&&&&&&&&&产品管理的目录
&&&&&&&&&&& pro_in.asp&&&&&&& 产品添加/修改页
&&&&&&&&&&& pro_ls.asp&&&&&&& 产品管理页
&&&&& /news/&&&&&&&&&&&&&&&&&&&&新闻管理的目录
&&&&&&&&&&& news_in.asp&&&& 新闻添加页
&&&&&&&&&&& news_ls.asp&&&& 新闻管理页
&&&&& .....
   大致这样的目录结构,其中pro_in.asp,& pro_ls.asp, news_in.asp,& news_ls.asp这些页面里面都有些脚本,有的脚本是所有页面都需要用到的,有的是只有那一个页面用到的脚本。我新建了几个名叫js的目录,并把公共的脚本和具体某个页面用到的脚本分别放在不同的js目录中,结构如下(注意红色部分是新添加的):
&&&&&& /js/&&&&&&&&&&&&&&&&&&&&&&&& 公共脚本存放目录
&&&&&&&&&&& public.js
&&&&&& /pro/
&&&&&&&&&&& /js/&&&&&&&&&&&&&&&&&&& 私有脚本存放目录
&&&&&&&&&&&&&&&&&&& pro_in.js
&&&&&&&&&&&&&&&&&&& pro_ls.js
&&&&&&&&&&& pro_in.asp
&&&&&&&&&&& pro_ls.asp&
&&&&& /news/&
&&&&&&&&&&& /js/&&&&&&&&&&&&&&&&&&& 私有脚本存放目录
&&&&&&&&&&&&&&&&&&& news_in.js&
&&&&&&&&&&&&&&&&&&& news_ls.js
&&&&&&&&&&& news_in.asp&
&&&&&&&&&&& news_ls.asp
&&&&& .....
   js文件都按这个目录结构进行存放,以后要修改某个页面的脚本(例如news_in.asp页面的脚本),我只要去找/news/js /news_in.js这个文件进行修改就行了。而我的news_in.asp这个网页里面,除了&head&头里面有两段脚本包含的代码外,页面其它的地方是没有任何JS代码的(将JS代码和网页完全分离了)。news_in.asp网页的&head&头里面的内容就像这样:
&script src="../js/public.js" type="text/ecmascript"&&/script&
&script src="js/news_in.js" type="text/ecmascript"&&/script&
  看到了吗?对于其它的页面,都是像这样的,只是上面红色的&news_in.js"这个地方根据不同的页面,调用的脚本文件各不相同。
   讲到这里,可能很多的人有疑问了,这样做,好像很多程序不能运行,例如上面所说的,如果脚本中含有document.write("...")输出,怎 么办(1)?还有,如果把所有js代码放到head那儿包含进来,脚本可能会出错了,因为有些脚本代码是在访问网页中的某些元素,而浏览器在加载&head&区域的时候,那些元素还没有被下载到客户端,因此脚本出错了,也就是说,元素的加载和脚本的执行是有先后顺序的(2)!& 还有,网页中的onclick="..."之类的事件句柄代码还是得调用脚本,也就是说,还是得去网页中修改调用脚本的事件绑定代码(3), 对于这些问题,下面一一作答。
  (1). document.write的问题,
  如果我们要在网页的某个地方输出一些内容,又不能把js代码放到网页的那个地方,怎么做呢?我们可以在要输出内容的那个地方,给那个元素取一个具有唯一性的ID值,例如我要在某个td单元格内用JS脚本输出一些内容。我就给这个td设置一个id,例如:
&td id="abc"&&/td&...
或者也可以新建一个子元素并指定一个id,例如:
&td&&div id="abc"&&/div&&/td&....
最后,我就可以把document.write("...")的代码改成这样的形式了:
document.getElementById("abc").innerHTML="....";
  (2).&对于元素的加载,和脚本执行顺序的问题,我们可以使用document.onload事件,很轻易的解决这些问题,例如某段js代码引用了某个元素,也就 是说原本这个脚本必须放在这个HTML元素后面,才可以正常执行,我们现在可以把这段脚本放到document.onload事件处理函数中去,这样,该脚本代码就不一定非要放到HTML元素的后面了,就像下面这样:
document.onload = function(){
&&&& //脚本代码
&&&&&&(3).&看明白了上面的第2点,那么第3点您应该也知道该怎么做了,原来我们在HTML元素上面去写onclick="...",现在,我们也可以使用像上面这样的机制,首先给元素取一个ID值,让JS能够访问到它,然后事件代码像下面这样放置,就不需要再到HTML元素上添加 onXxx="..."形式的代码了:
document.onload = function(){
&&&& document.getElementById("abc").onclick=function(){
&&&&&&&&&&&&&//事件执行代码
  通过上面这些方法,我们可以把所有的脚本代码都放到独立的JS文件中去。以实现网页HTML代码和脚本代码完全分离。最终应该要做到,网页中除了&head& 区域内的一些包含脚本或少量脚本代码外,其它的地方不应该存放任何脚本代码,包括HTML元素标签上的onXxx="..."(Xxx为事件名,例如click, focus, change等),应该完全丢弃这种做法,从此不要在元素上面添加形如 onXxx="..." 这样的代码了。
阅读(...) 评论() &野德带黑上后台按键精灵脚本(优化)_笨笨龙骑士的暗黑&魔兽世界_天涯博客
笨笨龙骑士之家
今日访问:[$DayVisitCount$]
总访问量:1148803
开博时间:
博客排名:1349
(246)(3)(118)(35)(10)(5)(8)(3)(33)
(2)(2)(2)(4)(1)(1)(1)(4)(2)(1)(5)(2)(4)(4)(4)(2)(5)(11)(25)(54)(30)(28)(19)(1)(2)(2)(1)(1)(1)(2)(2)(2)(3)(5)(9)(2)
  &&&&&&& 很兴奋的解决了非工程德一楼卡8只成功率的问题,基本上95%以上的成功率必定卡住6个以上,出于对大量专门洗出工程来带黑上的小德的保护,我不公布如何实现,请勿说我装13。&&&&&&& 对应黑上怪要逃跑的特殊性,重新写了一个后台脚本,避免怪物跑开以后丢失重欧无限横扫的DPS浪费。1和2键放重欧和横扫技能(对应键值49和50):Plugin hwnd = Window.GetKeyFocusWnd()Rem aFor&12Delay&500Plugin Window.SendKeyPress(hwnd,49)Plugin Window.SendKeyPress(hwnd,50)EndFor Delay 100Plugin Window.SendKeyPress(hwnd,9)Goto aFor 12可以根据自己装备做调整,装备好的,For数量可以往下调整,装备较差的可以适当提高到关于法系怪逃跑的问题:两个方面解决第一:天赋感染伤口必须加出来,减速情况下基本上无法成功逃走。重欧雕文和狂暴回复大雕文是必须的,推荐野德万年带刷天赋第二:尽量提高DPS,每个召唤师能提供正好800DPS,卡4个3200DPS,卡5个4000DPS,卡6个4800DPS,卡7个5600DPS,卡8个6400DPS,如果你低得离谱,那远程跑开也没办法了。分类: |
共2页/55条记录
2 下一页 尾页

参考资料

 

随机推荐