更有效的更新 observableList 的方法
More efficient method of updating observableList
这是我的设置:
我有一个包含一些数据的 mySQL 数据库。
我搭建了一个临时服务器,它下载这些数据并将其转换为 ObservableList
和
客户可以制作自己的 ObservableList
副本,将其命名为 localList
.
如果我想创建一个新条目,要求必须通过将新条目发送到 SQL 数据库来完成,
服务器下载它,客户端拉取这个更新,然后客户端看到更新。 (这样做是因为多个客户端将访问该数据库)。
这是我的问题:
目前,我这样做的方式是当我创建一个新条目时,服务器清除它的observableList
,再次填充它,客户端清除它的localList
并再次填充它。
我不必担心服务器代码(它将被更复杂的服务器替换),但我想知道
如果我的 localList
(来自 ObservableList)带有一些可以与另一个列表进行比较并相应地进行更改的方法。
而不是
ObservableList<myType> locallist = FXCollections.observableArrayList();
....
localList.clear();
for (myType element : serverList) {
localList.add(element);
}
每次新建一个条目,有没有更高效的方法?可能是某种类型的 update
方法?
基本上问题归结为:
有没有办法在不完全清除列表然后一个一个地添加元素的情况下将 observableList<myType>
设置为另一个。
是否
Bindings.bindContent(localList, serverList);
做你需要的吗? (Javadocs)。如果您在 serverList
中保留相同的列表实例并且不重新分配引用,它将起作用。
这是我的设置:
我有一个包含一些数据的 mySQL 数据库。
我搭建了一个临时服务器,它下载这些数据并将其转换为 ObservableList
和
客户可以制作自己的 ObservableList
副本,将其命名为 localList
.
如果我想创建一个新条目,要求必须通过将新条目发送到 SQL 数据库来完成, 服务器下载它,客户端拉取这个更新,然后客户端看到更新。 (这样做是因为多个客户端将访问该数据库)。
这是我的问题:
目前,我这样做的方式是当我创建一个新条目时,服务器清除它的observableList
,再次填充它,客户端清除它的localList
并再次填充它。
我不必担心服务器代码(它将被更复杂的服务器替换),但我想知道
如果我的 localList
(来自 ObservableList)带有一些可以与另一个列表进行比较并相应地进行更改的方法。
而不是
ObservableList<myType> locallist = FXCollections.observableArrayList();
....
localList.clear();
for (myType element : serverList) {
localList.add(element);
}
每次新建一个条目,有没有更高效的方法?可能是某种类型的 update
方法?
基本上问题归结为:
有没有办法在不完全清除列表然后一个一个地添加元素的情况下将 observableList<myType>
设置为另一个。
是否
Bindings.bindContent(localList, serverList);
做你需要的吗? (Javadocs)。如果您在 serverList
中保留相同的列表实例并且不重新分配引用,它将起作用。