栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP > php开源框架 > 齐博CMS

几个重要的方法函数 - 齐博CMS之X1

齐博CMS 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

几个重要的方法函数 - 齐博CMS之X1

`init()` `logic_init()` `once()`
这三个函数(框架网页用函数)或方法(JS脚本用方法)页面初次加载都会被执行
`once()` 不管切换哪个圈子,都不会再执行,因为页面加载完毕后,只执行一次,就不会再执行,除非刷新当前网页。适合于页面的全局变量处理或者是界面的全局设置
`init()` 是为满足渲染界面的,PC端的模板不需要重复渲染,所以PC端仅执行一次,此时跟`once()` 等效,而在WAP端的话,因为界面UI跟据不同的圈子会重新加载局部界面,所以在WAP端的话,又随着圈子的切换而再次的执行,此时又跟 `logic_init()`等效。
`logic_init()`是根据切换不同的圈子,会重新执行,也包括初次加载的圈子都会执行一次的。也就是说,他是会跟着圈子的切换会重新再执行的。

`once()` 大家容易理解,只执行一次。

而 `logic_init()` `init()`如何区别使用呢?针对不同的圈子要做不同的处理,那就用`logic_init()` 因为他保证了每次进入新的圈子,都要进行逻辑判断。比如签到功能,每进入一个圈子,都要做判断处理的。局部界面的渲染与局部界面元素的事件绑定,就用 `init()`。因为有的UI(多页模式比如PC端)可能不再刷新局部界面,有的UI(SPA单页模式比如WAP端)可能需要重新加载界面。
特别要注意:局部界面与全局界面又不一样,全局是不会重复加载的,因为SPA单页模式刷新加载的新界面也只是部分而已。

那如何区别局部界面与全局界面呢?凡是往body元素插入内容都是全局,比如`$("body").append()` 有这种情况的,就不能使用`logic_init()` `init()` 只能使用 `once()` 避免换更圈子时出现异常。
以上所讲的,都是针对切换圈子的情况,不切换圈子,是不会发现异常的。

另外还有一个

load_data.xxx= function(res,type){r
}

`xxx` 是模块的关键字,这里代表每次加载到会话数据的时候执行的. type=='cknew'的时候,代表是新刷新出来的数据,否则就是第一页的数据。按下面的操作方法,那效果也等同于`logic_init()`

load_data.xxx= function(res,type){r
if(type!='cknew'){
//这里执行的代码,效果等同于用logic_init()
}
}


最后要讲一下`finish()`
这个函数或方法是在所有模块都加载完毕后才执行的。因为所有模块的加载顺序是不确定的,比如签到插件想在视频直播的时候就不显示,那么就只能用这个函数来处理,只有这个函数才能判断当前视频直播模块是否有视频数据在直播,因为这个时候所有模块都加载完毕了,才能进行判断。
这个也只执行一次,`once()` 中的代码,其实也可以放在这里执行,唯一的区别是,这里要等待所有模块加载完毕才执行,就是时间上要晚一些而已,本质上是没有区别,就是时间上的区别。,
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/214268.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号