如何最好地将数字存储在 google 实时模型中,并获取原子更改事件?
How best to store a number in google realtime model, and get atomic change events?
听起来很简单,但是...
这个数字包含一个枚举类型,应该是自定义实时对象中的一个字段。这是它在自定义对象注册例程中的声明:
MyRTObjectType.prototype.myEnumeratedType =
gapi.drive.realtime.custom.collaborativeField('myEnumeratedType');
我可以将它作为一个简单的 javascript 数字存储在模型中,并像这样初始化它:
function initializeMyRTObjectType() {
// other fields here
this.myEnumeratedType = 0;
}
...但是下面当然不起作用,因为它只是一个数字:
myRTObject.myEnumeratedType.addEventListener(
gapi.drive.realtime.EventType.OBJECT_CHANGED, self.onTypeChanged);
我可以将事件侦听器添加到整个对象:
myRTObject.addEventListener(
gapi.drive.realtime.EventType.OBJECT_CHANGED, self.onTypeChanged);
但我只对那个数字的变化感兴趣(如果我对其他变化感兴趣,我不想检查每个字段以查看发生了什么变化) .
假设我将其存储为实时字符串,并像这样对其进行初始化:
function initializeMyRTObjectType() {
var model = gapi.drive.realtime.custom.getModel(this);
// other fields here
this.myEnumeratedType = model.createString();
}
现在我将获得我的更改事件,但它们不一定是原子的,而且我不知道从“100”到“1001”的更改是否仅仅是到“ 101”,所以我是否应该对此做出反应(这个确切的例子可能无效,但想法是存在的......)
所以问题是,有没有一种方法可以知道所有(复合?)更改,insertions/deletions 在字符串字段上是否完整,或者(更好)一种不同的推荐方式来存储数字,并在更改时获得原子通知?
您还会在包含对象上获得一个 VALUE_CHANGED 事件,就像在地图上一样:
myRTObject.addEventListener(gapi.drive.realtime.EventType.VALUE_CHANGED,
function(event) {
if (event.property === 'myEnumeratedType') {
// business logic
}
});
听起来很简单,但是...
这个数字包含一个枚举类型,应该是自定义实时对象中的一个字段。这是它在自定义对象注册例程中的声明:
MyRTObjectType.prototype.myEnumeratedType =
gapi.drive.realtime.custom.collaborativeField('myEnumeratedType');
我可以将它作为一个简单的 javascript 数字存储在模型中,并像这样初始化它:
function initializeMyRTObjectType() {
// other fields here
this.myEnumeratedType = 0;
}
...但是下面当然不起作用,因为它只是一个数字:
myRTObject.myEnumeratedType.addEventListener(
gapi.drive.realtime.EventType.OBJECT_CHANGED, self.onTypeChanged);
我可以将事件侦听器添加到整个对象:
myRTObject.addEventListener(
gapi.drive.realtime.EventType.OBJECT_CHANGED, self.onTypeChanged);
但我只对那个数字的变化感兴趣(如果我对其他变化感兴趣,我不想检查每个字段以查看发生了什么变化) .
假设我将其存储为实时字符串,并像这样对其进行初始化:
function initializeMyRTObjectType() {
var model = gapi.drive.realtime.custom.getModel(this);
// other fields here
this.myEnumeratedType = model.createString();
}
现在我将获得我的更改事件,但它们不一定是原子的,而且我不知道从“100”到“1001”的更改是否仅仅是到“ 101”,所以我是否应该对此做出反应(这个确切的例子可能无效,但想法是存在的......)
所以问题是,有没有一种方法可以知道所有(复合?)更改,insertions/deletions 在字符串字段上是否完整,或者(更好)一种不同的推荐方式来存储数字,并在更改时获得原子通知?
您还会在包含对象上获得一个 VALUE_CHANGED 事件,就像在地图上一样:
myRTObject.addEventListener(gapi.drive.realtime.EventType.VALUE_CHANGED,
function(event) {
if (event.property === 'myEnumeratedType') {
// business logic
}
});