通过继承IHttpHandle实现JS插件的组织与管理


Posted in Javascript onJuly 13, 2010

如:

<!— Js插件 --> 
<script type="text/javascript" src="/scripts/popup.js"></script> 
<script type="text/javascript" src="/scripts/popup-util.js"></script> 
<!—Jquery插件 --> 
<script type="text/javascript" src="/scripts/jquery-1.3.2.js"></script> 
<script type="text/javascript" src="/scripts/jquery.autocomplete/ jquery.autocomplete.js"> 
</script> 
<link type="text/css" rel="stylesheet" href="/scripts/jquery.autocomplete/jquery.autocomplete.css" /> 
<script type="text/javascript" src="/scripts/jquery.tip/jquery.tip.js"></script> 
<link type="text/css" rel="stylesheet" href="/scripts/jquery.tip/jquery.tip.css" />

有时,页面上引用的Js文件会更多,如果页面排版的整齐还好点,一旦排版的稍微不整齐,那么整个页面就显得很杂乱,那么究竟有没有更简洁的方法引用Js文件呢?本文就讨论一下这个问题。

开始做之前先在cnblogs上搜索了一下,果然有相关文章介绍:https://3water.com/article/24220.htm,不过本篇文章的博主不是很厚道(^_^),虽然给了一个demo下载,但是是编译后的程序,看不到源码,看不到源码也就算了,运行还出错,后来经过尝试,demo程序中还少一个script.do文件,并且还需要在IIS中配置“.do”的应用程序扩展,方法如下:在IIS中选择所建的网站,右键单击“属性”如下图:
通过继承IHttpHandle实现JS插件的组织与管理
说归正题,虽然只给了一个编译后的demo程序,但经过反编译查看代码后,还是为本人重新实现功能提供了一些好的建议,在此还是要对那篇文章的博主表示感谢^_^,接下来看一下本人是如果组织和管理JS文件的:

1. 在页面上需要添加一句引用:<script type="text/javascript" src="/Scripts/JsPlugins.js?plugins=popup&jqPlugins=autocomplete,tip"></script>
说明:参数plugins后面赋值的是原生js写的插件名,多个插件可以用逗号“,”隔开;
参数jqPlugins后面赋值的是jquery的插件名,同样,多个jquery插件名可以用逗号“,”隔开。

2. 为项目添加Js配置文件,如下:

<?xml version="1.0" encoding="utf-8" ?> 
<script path="/scripts/"> 
<!-- javascript 插件 --> 
<plugins name="javascript" file=""> 
<!-- 百度的弹出层 --> 
<plugin name="popup" file="popup-min.js"> 
<require file="popup-util.js"></require> 
</plugin> 
</plugins> 
<!-- jquery 插件 --> 
<plugins name="jquery" file="jquery-1.3.2.js"> color: #000000;"> 
<!--自动完成--> 
<plugin name="autocomplete" file="plugins/autocomplete/jquery.autocomplete.js"> 
<require file="plugins/autocomplete/jquery.autocomplete.css"></require> 
</plugin> 
<!--提示框--> 
<plugin name="tip" file="plugins/tip/jquery.tip.js"> 
<lazy file="plugins/tip/bs.css"></lazy> 
</plugin> 
</plugins> 
</script>

3. 在项目的web.config文件中添加HttpHandle,如下:
<appSettings>
<add key="JsConfig" value="~/Config/JsConfig.xml"/>
</appSettings>

<httpHandlers>
<add verb="*" path="JsPlugins.js" type="ScriptLoader.ScriptPluginHandle,ScriptLoader"/>
</httpHandlers>
另外,本人在实现的过程中还做了以下几方面改进:
1. 兼容IE6、IE7、IE8、Firefox、Safari、Opera浏览器(经测试,文中提到的那个demo程序在IE6下功能失效)
2. 使用了匿名回调函数,避免了与加载的Js文件中的方法重名
3. 可以同时调用原生js插件和jquery插件,前提是两者不会产生冲突

具体实现大家可以下载源码,本源码的开发环境VS2008 + ASP.NET MVC 1.0

Javascript 相关文章推荐
JS启动应用程序的一个简单例子
May 11 Javascript
js分页工具实例
Jan 28 Javascript
JavaScript中textRange对象使用方法小结
Mar 24 Javascript
JavaScript编程学习技巧汇总
Feb 21 Javascript
jquery删除table当前行的实例代码
Oct 07 Javascript
微信小程序 教程之注册程序
Oct 17 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
Apr 25 Javascript
JS判断非空至少输入两个字符的简单实现方法
Jun 23 Javascript
JavaScript中的高级函数
Jan 04 Javascript
微信小程序使用wxParse解析html的实现示例
Aug 30 Javascript
使用kbone解决Vue项目同时支持小程序问题
Nov 08 Javascript
JavaScript实现滑动门效果
Jan 18 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
Jul 13 #Javascript
javascript中字符串拼接需注意的问题
Jul 13 #Javascript
转换json格式的日期为Javascript对象的函数
Jul 13 #Javascript
Jquery+WebService 校验账号是否已被注册的代码
Jul 12 #Javascript
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
Jul 11 #Javascript
不同浏览器的怪癖小结
Jul 11 #Javascript
return false;和e.preventDefault();的区别
Jul 11 #Javascript
You might like
php+mysql结合Ajax实现点赞功能完整实例
2015/01/30 PHP
php 变量引用与变量销毁机制详细介绍
2016/12/05 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
javascript 实现父窗口引用弹出窗口的值的脚本
2007/08/07 Javascript
js模拟select下拉菜单控件的代码
2013/05/08 Javascript
jQuery之尺寸调整组件的深入解析
2013/06/19 Javascript
javascript实现捕捉键盘上按下的键
2015/05/05 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
原生JS实现拖拽图片效果
2020/08/27 Javascript
Vue自定义指令介绍(2)
2016/12/08 Javascript
JavaScript实现Fly Bird小游戏
2016/12/15 Javascript
javascript 秒表计时器实现代码
2017/03/09 Javascript
详解如何更好的使用module vuex
2019/03/27 Javascript
JS+CSS实现随机点名(实例代码)
2019/11/04 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
python友情链接检查方法
2015/07/08 Python
浅析Python中signal包的使用
2015/11/13 Python
关于Python中异常(Exception)的汇总
2017/01/18 Python
Python语言实现将图片转化为html页面
2017/12/06 Python
python实现协同过滤推荐算法完整代码示例
2017/12/15 Python
python pandas写入excel文件的方法示例
2019/06/25 Python
Python关于反射的实例代码分享
2020/02/20 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
使用Python爬取小姐姐图片(beautifulsoup法)
2021/02/11 Python
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
印尼最大的网上书店:Gramedia.com
2018/09/13 全球购物
关键字final的用法
2013/10/02 面试题
六十岁生日答谢词
2014/01/10 职场文书
小学庆六一活动方案
2014/02/28 职场文书
餐饮业员工工作决心书
2014/03/11 职场文书
施工员岗位职责
2014/03/16 职场文书
2015年行政管理人员工作总结
2015/10/15 职场文书
小学班级管理心得体会
2016/01/07 职场文书
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
2021/04/14 Python
springboot实现string转json json里面带数组
2022/06/16 Java/Android