使用范围:
OA、MIS、ERP等信息管理类的项目,暂时不考虑网站。
遇到的问题:
完成一个项目,往往需要引用很多js文件,比如jQuery.js、easyUI等。还有自己写的一些列js文件,那么这些文件如何方便的加载,如果文件有变化如何才能让客户端及时更新缓存?如果能够提高点运行效率,那就更好了。
目标:
1、 可以方便的引用js文件。
2、 尽量使用各种缓存,避免频繁从服务器读取文件。
3、 如果js文件有更新或者增加、减少几个减少js文件,需要客户端能够自动、立刻更新。
4、 Js文件的复用。
页面结构:
一般OA、MIS这一类的项目,大多采用frameset或者iframe的方式来实现,这样就有了父页和子页的概念。我们可以利用这一点来做做文章。
网页可以分为三块:外壳、首页、标签、数据列表、表单(添加、修改)。因为这里要说的加载js的方法,需要利用这种页面结构,也正是因为这个原因,所以暂时不支持网站。
看这个图有点眼熟吧。恩,就是这种结构。
正文
现在做web版的应用,越来越依赖各种js了,第三方的jQuery、easyUI、my97等,还有自己写的各种js。要实现的功能越来越多,需要使用的js也越来越多,js文件的修改也很频繁。于是就出现了许多问题,比如每个页面都要写一大堆<script src=””>。这个也太麻烦了吧,增加一个新的js文件,需要改多少页面?js文件更新了如何让客户端也立即更新?如何让客户端更快的加载js。有的Js文件还有依赖关系,如何确保加载顺序?本文内容就是分享一下我的解决方案。
动态加载
在页面里使用<script>加载js,显然很麻烦,那么怎么办呢?想来想去还是用动态加载的方法来解决。在网上也搜索了一番,有很多种方法,有自己手动写的,有整理成框架的(比如seejs)。有的时候还是感觉自己弄一个更加的应手,所以打算自己写一套。
如何动态加载呢?使用jQuery提供的方法吗?这个倒是可以,但是页面必须引用jQuery和我写的加载js文件的js。也就是说一个页面要写两个<script>,这个就麻烦了。能写一个,就一定不要写两个,虽然只是多了一个,但是多了这么一个就真的很麻烦。所以决定自己手写一个动态加载的小方法。
不会写怎么办呢?百度大婶来帮忙吧。各种搜呀,终于找到了一个比较理想的方法,恩就用这个了。
function ready() { /*IE7.0/IE10.0*/
if (s.readyState == \'loaded\' || s.readyState == \'complete\') {
callback();
}
}
function loaded() { /*chrome/IE10.0*/
callback();
}
}
};
本文地址:https://www.stayed.cn/item/4312
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我