将DOM节点转换为图片

如何将DOM转换为图片,这个问题可能有点大,一时想不到答案,但我们把问题缩小一下,转换为SVG你可能就想起来了。SVG能直接嵌入到HTML中,那反过来应该也行。回忆一下,SVG和DOM是不是长得很像?因为他们都是XML的一种方言,所以我们把DOM塞到SVG里面就行了。但是,问题来了,XHTML和SVG都有一个<title>标签,SVG怎么区分他们?其实这就好比变量之于命名空间,XML有各种方言,所以也有命名空间开区分它们。<svg xmlns="http://w...

JS 实现位图(Bitset)数据结构

位图数组中每个元素在内存中占用1位,所以可以节省存储空间,在索引,数据压缩等方面有广泛应用。我们使用类型化数组Uint8Array储存位图,数组中每一个元素占8个字节所以最大值是255。关键是寻找偏移量,index>>3 右移三位相当于除8。可以找到对应的数组元素,1 << (index % 8) 找到位对应数组元素的哪一个字节。最后通过按位判断该为1或0。判断存在时:使用按位与&(只有两个操作数相应的比特位都是1时,结果才为1)修改某项:使用按位或|Typ...

JS中依赖注入的几种实现方式

依赖注入与控制反转控制反转(Inversion of Control)是一种思想依赖注入(Dependency injection)是一种设计模式依赖注入的实现其实依赖注入原理很简单,就两点:实现一个服务池解析依赖项,并将对应的服务传入需要它的函数服务池简单,可以直接用对象模拟。 class Injector { constructor() { this.dependencies = {}; } register...