在颠簸的开始之后,我一直在使用 dgrid 的 OnDemandGrid 和 dojo.store.JsonRest 相当成功,但是在实现缓存时注意到一个小故障:如果我长时间滑动触控板(即,我不科学地滚动了“很长的路”)和然后向后滚动,dgrid 似乎对我所在的位置感到困惑。例如,假设我在第 1609 行附近,然后向下滑动并发现自己正在查看第 500 行。如果我随后向上滚动到顶部,我会发现行的 ID 可能类似于 1609、1608、1607 , 503, 502, 501, 500... 如果我向下滚动父亲,它会拾起缺少的行 499、498、497、1606、1605 等。
var store = Observable(Cache(JsonRest({
target: "/cgi-bin/safari/safari_retrv.pl?action=front&format=json",
sortParam: "sort",
idProperty: "queryId"
}),Memory()));
var grid = new declare([OnDemandGrid, Keyboard, Selection, DijitRegistry])({
store: store,
query: {aid: "1604" },
bufferRows: 40,
loadingMessage: "Loading...",
columns: {
aid: "AID",
title: "Title",
poster: "Poster",
postTime: "Posting Date",
commentCount: "Comments"
},
}, "grid");
即使存储只是没有缓存存储的 JsonRest,也会出现问题。