ASP.NET编程:用Microsoft Ajax Minifier帮你的Javas...
学习asp.net两个月有余了,除了对html、web控件比较熟悉(应该是说都能理解和接受)之外,竟不知道自己还会什么。看了两本书:《精通asp.net网络编程》(人民邮电出版社)、《asp.net实用案例教程》(清华大学出版社)。前两天在Plurk上看到91哥在谈这个工具,一时髦起之下就稍为玩了一下,发明还蛮风趣的,以下先容给人人参考看看。从Web2.0衰亡后,利用者关于网页互动的需求越来越年夜,不但请求利用界面美妙,也但愿操纵功效的和睦度上能与已往的Winform程式看齐,而为了到达更优秀的操纵效果,程式计划师不能不在网页计划上到场很多的新元素(又大概说普遍利用一些已往对照罕用的手艺),个中AJAX就是一个很抢手且广为人知的手艺架构,而众家软体年夜厂也连续推出对应的AJAXFramework来帮忙我们举行开辟,但AJAX除带更优秀的人机操纵外,也带来了大批的Javascript,跟着我们利用的AJAX功效越来越多,网页必要reference的Javascriptfile数量也越来越多,体积也越来越年夜,而这些改动都将反响在利用者举行网页下载与Javascript实行时的效力。若你利用了ASP.NETAJAX,基础的Javascript体积约200-300KB,若你利用了AjaxPro,则基础的Javascript约为80KB,Javascript固然城市cache,但对利用者来讲,第一次操纵时的体验几城市遭到影响。
由于网页流量太年夜,Javascript太肥等成绩,实践上微软这边都有供应了一些还不错的计划,将以下叁项做搭配,就能够取得很不错的效果:
IIS网页紧缩:将IIS静态档案(html、CSS、JS…)、静态档案(asp、aspx…)举行紧缩,可年夜年夜削减网页流量,紧缩比设到最高时,约莫能够将流量压到剩30%摆布。
DOLOTO指令码剖析:卖力剖析实行的script,只下载需要的script内容到client,并跟着client真个必要静态到server上往获得需要的部分,可削减不用要的流量。
AJAXMinifier:Javascript瘦身工具,能够将Javascript往除不用要的字元,包括空缺、换行、标记与地区变数的称号等,可间接的让我们的JSfile酿成一个全新的runtime版本。
本篇次要针对AJAXMinifier来做申明。
AJAXMinifier
这个工具是跟着MicrosoftAjaxLibraryPreview6一同被release出来的,能够到这个中央下载:http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=34488
下载完并安装后我们能够在程式会合看到MicrosoftAjaxMinifier,第一次利用倡议你看一下MicrosoftAjaxMinifierDocumentation。
安装上非常的复杂,不外利用时可就要略微寄望了,这个工具今朝仍算阳春,只供应了Command-line形式的操纵,还没有GUI的利用介面,这也是前头我倡议列位先看看Documentation的塬因地点了,下方我们会复杂带一下怎样透过Command-line与MSBuild来利用这项好工具。
Introduction
不论利用任何工具,假如有Documentation,请务必寓目,在Introduction中我们能够看到这个工具的处置分红四个品级:
Level1:往除空缺(whitespaces)与]解(comments)
Level2:往除不必要的分号(semicolons)与年夜括号(curly-braces),以下简称Normal-Crunching
Level3:变动地区变数称号,将称号变动为复杂的称号,以下简称Hyper-Crunching
Level4:往除不会实行到的script内容
以上四个品级,Level1~3可间接选择Level3来利用,但如果要利用Level4的话,倡议你确认一下该段script是不是真的不会实行到,以避免衍生其他成绩。
Command-line形式
起首我们开启MicrosoftAjaxMinifierCommandPrompt:
依据文件申明,我们有以下几个较经常使用的指令可使用:
-O:指定Minify后的档案档名,预设产出的品级为Level2的了局(Normal-Crunching)。
-H:举行Javascript的瘦身,预设产出品级为Level3的了局(Hyper-Crunching)。
-A:将剖析历程的内容显现在Command-line画面上
接上去我们复杂的举行利用吧,起首我找了一个hash.js的档案,其塬始内容为大抵以下,有完全的]解与Function界说,这对开辟职员很有效,可是对runtime的利用者来讲并没成心义:
接着入手下手来实验一下吧,先辈行以下两个指令Normal-Crunching与Hyper-Crunching:
Normal-Crunching:ajaxminC:inetpubwwwrootWebSite2hash.js–oC:inetpubwwwrootWebSite2hash_mini_O.js
将hash.js档透过-O(Normal-Crunching)的指令转成hash_mini_O.js档:
按下Enter后显现Crunchingfile‘hash.js’…Done.
以下则是转完后的了局,档案巨细从5K-->2K,字元数从3891-->1699:
Hyper-Crunching:ajaxmin–a-hC:inetpubwwwrootWebSite2hash.js–oC:inetpubwwwrootWebSite2hash_mini_A.js
按下Enter后它会将剖析的了局印在Command-line的画面上,这是由于我们利用了-a的指令:
以下是产出的档案,乍看之下仿佛不同不年夜,但这一份由于我们利用了-h(Hyper-Crunching)的指令,以是会发明一些地区变数被更名成对照复杂的定名,比方:varexists-->vara,以是这份档案的巨细固然仍是2K,可是其位元数为1531,比之前的1669更少:
因为这个js档对照小,以是全部效果并没有让人感应出格惊人(5K-->2K),以是上面我们间接拿jQuery的js档来实验吧:
jquery1.3.1版,巨细为115K,经由-O的指令后变成69K,经由-H的指令后变成53K,效果之好真的十分误点。
MSBuild形式
讲完Command-line形式后我们持续来讲明MSBuild形式吧,透过Command-line形式几仍是会让人感应有些绑手绑脚的,最好能够在咽鹗本妥远镂颐亲龅艟妥詈
当我们装好Minifier后,在这ProgramFiles/MSBuild/Microsoft/MicrosoftAjax的路径下能够找到一个AjaxMin.tasks档案,这是一个MSBuild公用的task档案,在我们专案建置时会唿叫这个task来举行Minifier的唿叫:
开启我们的Web专案档(*.csproj、*.vbproj),并在</Project>的开头标记前加上这一段:
以下为援用的内容:
[*]<ImportProject="$(MSBuildExtensionsPath)MicrosoftMicrosoftAjaxajaxmin.tasks"/>
[*]<TargetName="AfterBuild">
[*]<ItemGroup>
[*]<JSInclude="***.js"Exclude="***.min.js;Scripts*.js"/>
[*]</ItemGroup>
[*]<AjaxMinSourceFiles="@(JS)"SourceExtensionPattern=".js$"TargetExtension=".min.js"/>
[*]</Target>
以上的设定是告诉专案编译时要唿叫ajaxmin.tasks,次要举行的事情是找出目次下一切的*.js档,举行完Minify后将称号定名为*.min.js,做完以上设定后我们再开启我们的专案,这时候候大概会呈现以下的画面,请选择『以一样平常体例载进专案』,并按下断定:
接着我们在专案中任意到场几个js档,以下:
接着请按照一样平常的利用形式,按下建置,这时候候到我们专案的目次下就能够看到以下的了局还庑┑蛋覆⒉换嶙远锬慵尤氲阶ò钢校飧錾杓埔膊淮恚蛭暇拐饬椒js一份是在designtime,另外一份是runtime利用,不间接被到场专案是公道的:
结语
这个工具的利用大抵如以上所述,但愿对列位有匡助。
也许唯一可以让世人留恋Java的理由就剩下它的王牌——跨平台。 ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。 逐步缩小出错代码段的范围,最终确定错误代码的位置。 但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。 能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。 众所周知,Windows以易用而出名,也因此占据不少的服务器市场。 PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
页:
[1]