Results 95 comments of 行列

#### 基于localStorage的http接口增强 如果我们仅考虑同浏览器的不同tab间数据通信,我们要以使用localStorage进行,该方案仅在同一个浏览器里可行。 如果和websocket一同考虑,我们可以用以下的伪代码来示意 ```js import Magix from 'magix'; import AppData from './app-data'; export default Magix.View.extend({ init() { this.listenTo(AppData, 'message.bizcode.xxx', data => { if(data){ this.set(data); } this.render(); }); }, async...

### magix中的应用 > 在magix项目中可以直接这样使用 ```ts import Magix5 from 'magix5'; export default Magix5.View.extend({ tmpl:'@:./index.html', async render(){ let m = Magix5.mark(this,'render.mark'); let data = await fetchData(); if(m()){ this.digest(data); } } });

我的`blog` https://xinglie.github.io 中音乐播放器就使用了该`api`

@yocaning 对的,已修改,感谢~

功能默认不开启,需要自己重新编译,而且在实现的时候,我们使用post向combine接口发送请求,对于一些接口是get,且参数较少的情况下,combine接口用get是更好的选择。这块细节需要在项目使用中再去调整和优化

https://github.com/zengwenfu/note/blob/master/node/freedom-api.md

用mx-lazy-view也可以,我这个思路是拦截并改变原来的加载流程。把这个过程放在外部,实现类似img-lazyload的效果也是可行的。

在真实绑定事件的时候,Magix对接的是类库的事件绑定,如使用jQuery类库则调用jQuery的事件绑定机制进行绑定。 Magix在绑定的时候有如下优化: 1. 无论多少个view,也无论每个view绑定多少个不同类型的事件,Magix只会调用一次类库事件的绑定方法。即不同的事件类型绑定的也是同一个Magix内部的事件处理方法 2. 当某个事件发生时,Magix内部事件处理方法根据Magix的view嵌套关系特点,快速的找到对应的处理view,进而调用对应的方法 用图表示如下: ![image](https://cloud.githubusercontent.com/assets/1290017/19463601/0bfbcfd8-9528-11e6-9e31-f5ecdfc3199c.png) 简单聊下jQuery的事件绑定,如图,当我们绑定click1,click2,click3,三个事件处理函数时,调用jquery的事件绑定方法,它内部会用把click1,click2,click3放到这个eventList数组里,而真实绑定的则是eventHandle的内部方法,当事件发生时,再循环调用eventList里面的回调函数 ![image](https://cloud.githubusercontent.com/assets/1290017/19464610/6136f452-9530-11e6-951f-e3c286f6d250.png) Magix的事件绑定,没有eventList来存储回调函数,而是当事件发生时,根据view之间的关系,快速寻找到对应的view。同时可避免不必要的检测,如点击在vf4区域内时,vf3则不会被检测

## 更高效的view更新 > 从3.8版本之后加入了dom比对,虽然粒度更细,但性能上并不乐观.如果能从组件的角度通过数据来识别是否需要更新,则能大幅提升性能,基于这个前提,现给出书写view的通用模板 ```js let Magix = require('magix'); module.exports = Magix.View.extend({ tmpl: '@view.html', init(extra) { //初始化时保存一份当前数据的快照 this.updater.snapshot(); //该处是否可以由magix自动调用 this.assign(extra); }, assign(data) { let me = this; //赋值前先进行数据变化的检测,首次assign是在init方法中调用,后续的调用是magix自动调用,这个检测主要用于在首次调用后,magix自动调用前有没有进行数据的更新 let altered...