[原创]Chain-软件分享造梦空间论坛-其他分类-造梦空间论坛

[原创]Chain

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"}

]

]

请登录后发表评论

    没有回复内容

© 造梦空间论坛