文章目录[隐藏]
Chain的定义
Chain是一种用于在Web Kit下实现链共享的技术。由3O联盟发起,其主要是为了弥补网站之间数据传递的空缺,目前已经可以通过NPM等应用到前端中。
Chain API
const chain = new Chain({key: "mychain", product: true, password: "123456"})
这将创建一个Chain,他的名字是mychain,保护功能启用(启用后需要通过密码才能解密),密码为123456的链。
const visitor = new Visitor("mychain", "123456")
这将创建一个Visitor,他将访问名字为mychain,密码为123456的链。
const writer = new Writer("mychain", "123456")
这将创建一个Writer,他的作用是向链中添加内容,他将访问名字为mychain,密码为123456的链。
上面是Chain、Visitor、Writer的创建方式,那么你知道他们有什么作用吗?
Chain
Chain对象是用于创建一个链,他将被注册到浏览器中,并且所有的网站(但是未启用SSL的网站无法访问product开启的链)都可以访问到链,并且都能通过Visitor和Writer进行访问。
Writer
Writer用于向链中添加内容。
Visitor
Visitor用户获得链中的内容。
APIs
chain.getCreater()
他将返回创建chain的网站地址,例如https://example.com/chain.php?name=abc
chain.getChainLength()
他将返回chain的链长度。一般链程度就是指链中所含数据的多少,例如[a1,a2,a3]就是长度为3。等同于visitor对象的length,见下文。
chain.toOnlyRead()
他将会把chain变为只读的,但是有要求:1. 只有创建这个chain的网站才能使用 2. 必须启用了product才能使用。使用后Writer将无法连接到chain。
writer.push()
writer.push(key, content),key代表属性名,content代表数据。visitor就是通过key来获得content的。
writer.remove()
writer.remove(key)用于删除指定key的对象。
writer.getJSArray()
用于将chain同步导出为数组。
writer.appendJSArray(arr)
用于将js的array(参数名为arr)同步到chain中。您可以通过getJSArray()和appendJSArray()来按照JS的方式进行更改。
visitor.getOnlineVisitor()
获得同一设备与其同在一条链上的visitor,获得的大致如下:
[{host: "example.com", path: "/library/cart.php"},{host: "taobao.com", path: "/cart.asp"}]
这对于一些网站的数据分析、数据共享有重要作用。
visitor.getContentFromKey(keyName)
按照key名称获得内容。
visitor.includes(keyName)
检测key名称是否存在。
注意
请勿乱用技巧
检测key
如果要检测key是否存在,你应该创建一个visitor对象,然后通过includes检测是否存在,他将返回true和false。而不应该通过writer.getJSArray获得JS的数组再执行include操作。
至于为何,那就是chain刷存机制:每将chain转换为JSArray时,他就会将该域名的chain刷存机制更新,在收到下一次的更换为js数组之前,他都会保持刷新状态,这样新的东西在其他网站通过writer添加时,你的网站都不会收到。
chain的原型
为了方便你看到chain的本身数据是什么结构,这里列出来:
[
{_parent:"http://这是创建我的网站"},
[
{id: 1, key: "first", content: "hello"}
]
]
没有回复内容