Live Note

Remain optimistic

一个简单的处理 XML 的函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function parseXml(xml) {
//跨浏览器处理 XML
var xmldom = null

if (typeof DOMParser != "undefined") {
xmldom = new DOMParser().parseFromString(xml, "text/xml")
var errors = xmldom.getElementsByTagName("parsererror")
if (errors.length) {
throw new Error("XML parsing error:" + errors[0].textContent)
}
} else if (typeof ActiveXObject != "undefined") {
xmldom = createDocument()
xmldom.loadXML(xml)
if (xmldom.parseError != 0) {
throw new Error("XML parsing error:" + xmldom.parseError.reason)
}
} else {
throw new Error("No XML parser available.")
}
return xmldom
}

序列化 XML 文档

1
2
3
4
5
6
7
8
9
10
11
12
13
//序列化 xmldom 文档
function serializeXML(xmldom) {
if (typeof XMLSerializer != "undefined") {
//兼容 ie9+ safari Chrome opera
var serializer = new XMLSerializer()
return serializer.serializeToString(xmldom)
} else if (typeof xmldom.xml != undefined) {
//兼容 ie9.0 以下
return xmldom.xml
} else {
throw new Error("serialize XML Dom failed!")
}
}

~运算符

位运算符是三步处理的过程:

  1. 把运算数转换成 32 位数字
  2. 把二进制数转换成它的二进制反码
  3. 把二进制数转换成浮点数
1
2
3
var iNum1 = 25 //25 等于 00000000000000000000000000011001
var iNum2 = ~iNum1 //转换为 11111111111111111111111111100110
alert(iNum2) //输出 "-26"

~~技巧

这是刷题时看见别人的代码里使用的东西,通常用来代替 Math.trunc()的方法。

1
2
3
4
5
6
//单个 ~
console.log(~1337) // -1338
//数字输入
console.log(~~47.11) //47
console.log(~~1.9999) //1
console.log(~~3) //3

当原始输入不确定时,~~可以将任何非数字类型转换成 0:

1
2
3
4
5
6
7
8
console.log(~~[]) //0
console.log(~~NaN) //0
console.log(~~null) //0

// | 0 也是相同的效果
console.log([] | 0) //0
console.log(NaN | 0) //0
console.log(null | 0) //0
Read more »

什么是微前端

微前端架构具备以下几个核心价值

  • 技术栈无关:主框架不限制接入应用的技术栈,子应用具备完全自主权
  • 独立开发、独立部署:子应用仓库独立,前后端可独立开发,部署完成后主框架自动完成同步更新
  • 独立运行时:每个子应用之间状态隔离,运行时状态不共享

现有解决方案

  • 路由分发(nginx)
  • npm 子包:基座负责打包构建发布,打包时集成;
  • iframe:应用之间完全独立;需要基座提供通信方案;
  • 通用中心路由基座式:完全独立;需要基座提供通信方案;使用 DOM 实现;(阿里乾坤)
  • 特定中心路由基座式:相同技术栈;复用基座公共基建内容;(美团广告业务)
Read more »

防抖

浏览器中有的事件触发非常频繁,如果在事件触发的时候就调用,这时就会不断地产生新的调用,导致变‘卡’。
防抖就是在某段时间间隔内,不调用函数,直到一段时间后不在再新的事件触发,再调用函数;或者是先调用函数,在一段时间间隔内继续触发不再重复调用函数。

Read more »

日航哲学 – 成功方程式

人生 · 工作的结果 = 思维方式 _ 努力 _ 能力

作为人,何谓正确

领导人率先垂范,以身作则。

阿米巴系统

京瓷的经营理念: 在追求全体员工物质和精神两方面幸福的同时,为人类社会的进步发展做出贡献。

阿米巴经营是通过一个个小集体的独立核算来实现全员参与经营、凝聚全体员工力量和智慧的经营管理系统。

但是在 乌合之众 中说到,群体聚集在一起的智商,只会降低。所以是否可以利用群体的力量,独立的领导人(智慧&方向),达到目的。

阿米巴经营的目的

  1. 确立与市场挂钩的分部门核算制度
  2. 培养具有经营意识的人才
  3. 实现全员参与的经营

创业初期部门结构

创业初期部门结构

核心技术在研发

传统公司经营模式

传统公司经营模式

如果市场价格波动,销售的售价必然下降。此时,如果减少销量,会增加库存。增加销量,成本增高,总利润下降。

此时拆分成阿米巴之后,生产和销售之间必然会产生分歧。此时直接损害生产部的利益,所以传统经营模式在阿米巴经营中并不适用。

细分阿米巴的三个条件

  1. 能够独立核算的单位
  2. 独立完成某个业务的单位
  3. 划分组织必须有利于实现公司的方针和目标