这可能不是问题,但这是从头开始学习本机脚本时出现的疑问列表。
我在数据表中存储了1000或更多的数据列表。知道我想在列表视图上显示它,但我不想一次读取所有数据。因为我将图像存储在其他目录中,并且也想阅读。因此,对于20到30个数据的性能来说是相当不错的。但是对于1000个数据,要花费15分钟以上的时间才能读取数据以及与之相关的图像。因为我要存储一些高质量的图像。
因此,我决定只读取20张数据及其各自的图像。并显示在列表上。知道用户何时到达列表的第15个数据。我决定从服务器再读取10个数据。
知道当我搜索此内容时,我遇到了“ RadListView按需加载”。 然后我只是看了下面的代码。
public addMoreItemsFromSource(chunkSize: number) {
let newItems = this._sourceDataItems.splice(0, chunkSize);
this.dataItems.push(newItems);
}
public onLoadMoreItemsRequested(args: LoadOnDemandListViewEventData) {
const that = new WeakRef(this);
const listView: RadListView = args.object;
if (this._sourceDataItems.length > 0) {
setTimeout(function () {
that.get().addMoreItemsFromSource(2);
listView.notifyLoadOnDemandFinished();
}, 1500);
args.returnValue = true;
} else {
args.returnValue = false;
listView.notifyLoadOnDemandFinished(true);
}
}
在nativescript中,如果我想访问绑定元素xml元素。我必须在关联的js文件的viewmodel或exports.com_name中使用可观察对象。
,但是在此示例中,它以public ..开始!如何在javascript中使用它。
什么是新的WeakRef(this)? 为什么需要它?
如何识别用户已滚动到15个数据,因为我想在他到达第15个数据时加载更多数据。
获取数据后如何更新列表数组并将其显示在列表视图中?
最后,我只想知道如何按需使用负载
我试图创建一个我尝试过的游乐场样本,但是它给出了错误。找不到radlistview的模块。
请记住我比较新鲜,所以在回答时请记住这一点。谢谢你,
如果您认为该问题不符合标准,请修改该问题。
答案 0 :(得分:0)
TypeScript转换为JavaScript
您可以使用任何TypeScript compiler来将源代码转换为JavaScript。甚至还有像官方TypeScript Playground这样的在线编译器。
在我看来,很难再期待ES5示例了。 ES6-9引入了许多新功能,这些功能使JavaScript开发更加容易,并且TypeScript将JavaScript提升到了一个新的层次,从解释器到编译器。
要回答您的问题,您将使用原型链在ES5中的类上定义方法。
fromObject
如果您将addMoreItemsFromSource: function (chunkSize) {
....
};
语法用于Observable,则可以在内部传递这些函数
loadOnDemandMode
WeakRef::通过保持对目标的宽松引用来帮助有效地管理内存,有关更多信息,请访问docs。
如何加载更多内容:
如果将Auto
设置为loadMoreDataRequested
,则每当用户到达滚动结尾时,都会触发addMoreItemsFromSource
事件。
loadOnDemandBufferSize决定在滚动结束之前应触发多少个项目。
有关docs的更多信息。
如何更新阵列:
这正是.push(item)
函数中展示的内容。在链接到列表视图的ObservableArray上使用import
。
答案 1 :(得分:0)