关于网友提出的“(javascript)在每个页面都只引用同一个js情况下如何根据不同的页面来执行不同的$function{}呢”问题疑问,本网通过在网上对“(javascript)在每个页面都只引用同一个js情况下如何根据不同的页面来执行不同的$function{}呢”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:(javascript)在每个页面都只引用同一个js情况下如何根据不同的页面来执行不同的$function{}呢
描述://moduleA.js
var moduleA = (function(){
})();
$().on.("",moduleA.foo);
//moduleB.js
var moduleB = (function(){
})();
$().on.("",moduleB.foo);
最后打包成一个min.js
但是每个页面都有一些$(function(){})
要执行,
怎样根据不同的页面来执行不同的$(function(){})
呢??
PS.另外感觉模块化与$(function(){})
这种东西很冲突,因为这个东西不是一个模块,
以及那些$().on()事件绑定看起来也很不舒服,应该把他们放在那里?内联吗?如何优化?
解决方案1:最暴力的方法,通过location.href获得当前url,根据url的pattern决定执行那些代码
解决方案2:时间不足回答,提供几个关键词,给你学习吧
commonJS
:一种js模块化的标准,nodejs在用
gulp
:自动化构建工具
borwserify
:将多个js打包成一个js的玩意儿
解决方案3:你把$(function(){})
初始化代码放在不同的js中
在不同的页面引入这个js文件
例如
A页面,Ainit.js B页面 Binit.js
同时将不同的模块按页面划分,每个页面min自己需要的module
A页面
B页面
$(function(){})
是用来执行初始化工作,执行页面上DOM元素事件绑定使用的
而不是通过它了模块化,$().on()
事件绑定要放在和页面DOM相关的模块中
你可以把业务相同的逻辑封装在一个业务模块(LogicModule)中,
和页面DOM相关的逻辑,如事件绑定,封装在DOM模块(ViewModule)中
不同的模块通过第三者,例如自定义事件执行数据通讯,或者再ViewModule中引入LogicModule处理,
但是不要在LogicModule中引入ViewModule
以上介绍了“(javascript)在每个页面都只引用同一个js情况下如何根据不同的页面来执行不同的$function{}呢”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1445514.html