一般来说,还是推荐用JS文件,框架只适合界面比较多又复杂,但逻辑代码比较少才考虑使用框架。
JS文件,大家可以理解为PHP文件,而框架网页就相当于模板,一般不建议在模板中写太多程序。而在程序中可以放入少量的模板界面代码。
如下图所示,
框架网页的话,初始化被执行的是函数 `init();`
JS文件的话,初始化被执行的是类的方法` init();` 比如 `mod_class.signin.init()`
`init`是指当前模块被加载完毕时执行的.
如果要在所有模块都加载完毕的话,就要用另一个方法或函数 `finish`
切换圈子房间的时候,不再执行`init()` 而是另一个函数或方法 `repeat_init()`
`mod_class.signin.fn222()` 这个是JS脚本互相被调用的方法格式
`window.parent.mod_class.signin.fn222()` 这个是框架网页互相被调用的方法格式,那就是在框架里边要加上`window.parent.`
注意要把`signin`换成相应模块的关键字,`fn222` 换成定义好的方法或函数 , 框架用函数定义, JS脚本用方法定义
JS脚本中的类的格式化如下
mod_class.signin = {r
r
r
init:function(res){r
this.fn1(res);r
},r
r
r
fn1:function(s){r
alert(s);r
},r
r finish:function(res){r
//alert(res);r
},
}
其中
`mod_class`是全局用到的类,各插件可以互相调用。
比如 `mod_class.signin.xxxx()`
再次强调,在框架中使用的话,要加上`window.parent.`
在框架中就有函数
//页面加载完毕后被执行的函数r
function init(res){r
//注册聊天数据初始加载成功的事件,但这个有可能不执行,因为加载顺序的问题r
window.parent.load_data.signin = function(res,type){r
if(type!='cknew'){r
get_cfg();r
} r
}r
r
var firstPageData = window.parent.first_page_data;r
if( typeof(firstPageData)!='undefined' ){ //框架滞后加载的情况r
get_cfg();r
}r
}r
r
//所有模块加载完毕后被执行的函数r
function finish(res){r
}
[](https://img.kancloud.cn/42/df/42df602766c36d7bd4dfa013a8259688_1357x660.png)
[](https://img.kancloud.cn/35/13/3513fb56e7e46486ad1d657bf1fdcfa1_1572x722.png),



