第一次写报到,先来篇轻量级的js部署与维护

轻量级的js部署与维护

大家好,俺叫小Sam,打招呼结束。

其他无关紧要的话我就不多说了,也不会说,直接上事件起因:

1.js的保密性

2.js与页面的性能优化(这是重点)

先谈谈的说下保密,由于js的特殊性,用户可以轻而易举地对一个网站的js文件一览无余,虽然有各种加密手段/混淆手段,但是都是来自于客户端的方法。

今天我就来谈谈如何结合服务器端来对js进行加密与性能优化。

步骤:

1.定制你的js清单,是的,这个清单是真实的js文件的清单,可以用任何数据格式,至于页面与js文件的关系模式,就随大家发挥了,我个人偏向于page:js=1:N的方式

2.新建一个文件,文件格式?这个得看你是什么服务器,asp貌似没什么格式 就.asp,.net的话推荐用.ashx/.aspx都行,php-.php以此类推,其实这个文件主要是用于聚合你的script脚本。

3.编写这个文件,如果你不想别人看到你的js内容,就做一个验证吧。写完验证之后,可以开始聚合你的js文件了,首先你需要写一个private方法(或者函数),其参数是string js_name 看到名字懂了吧,这个方法返回的就是你输入这个js_name的文件中的内容(这里语句比较纠结。。请仔细理清楚吧!),接下来,需要用到你写的清单,通过清单,将页面需要的每一个js文件都迭代进一个字符串流中,接下来就是将这个流输出到页面中。

4.在你要载入js的页面:<script type="text/javascript(好像html5 不用写type来着)" src="你新建的那个文件"></script>

当然src部分需要传入一些参数 比如你的页面的url 因为需要通过url在js清单中去找到你需要的js,这是必须的,当然用于加密或者其他的用途,你可以传其他的参数!

貌似这样就可以了完成了呗!

说说这么做的好处吧:

1.加密方面,如果你做了验证过程,可以实现对js的部分隐藏,相信这远比仅仅通过对js文件的单纯混淆与加密要更安全得多

2.性能优化与维护两不误:有些大项目,可能无法把所有的js都合成为一个js文件来载入,至于为啥要合成一个来载入,因为<script></script>标签(后面略去X个字)。比如说你在所有页面上都需要载入jquery.js这个优秀的js库,但是同时你在一个或者几个类似的页面需要载入另一个js文件,如果用html来每次都载入一个,这样<script>标签的数量会很多,这样页面性能会大大受到影响(其实当script标签在载入文档的时候,其他动作都会停止),现在,你通过js把所有js内容都合成到一个页面再来载入,这将大大地节省HTTP请求次数,因为性能显而易见。

3.其工作方式,一旦建立好清单与js请求页面后,你只需要更改清单与添加js文件就行。而无需对页面内的代码进行更改,另外,你可以对js进行分类,比如debug版和release版,当然release是压缩过的,这些也仅仅需要在清单中进行更改就可。维护很方便的。

//------------------下面是感想,觉得不需要的可以直接关闭本页咯哦------------------->

其实这篇文章只是观后感,这种js载入方法,早就已经存在,小Sam只是将自己的实现过程表达出来而已了!

如果错漏,非常欢迎指出!需要源代码的 请联系我QQ:550532246

posted @ 2012-02-20 23:13  Yorkie  阅读(456)  评论(0编辑  收藏  举报