У меня есть буферизованное хранилище, которое делает вызов ajax. Всего у меня около 40 записей. Я хочу, чтобы при прокрутке страницы запускались несколько вызовов ajax. Однако, как только я загружаю страницу, я вижу, что несколько вызовов ajax выполняются даже без прокрутки. Какое изменение необходимо, чтобы такое поведение происходило только при прокрутке страницы (т. е. последующие вызовы ajax выполняются только при прокрутке)? Любая помощь будет здорово!
Мой буферизованный магазин выглядит следующим образом:
Ext.define('myStore', {
extend: 'Ext.data.BufferedStore',
requires: [
'myStoremodel' // model that the store takes in
],
storeId: 'myTeststore',
model: 'myStoremodel',
remoteSort: true,
buffered: true,
leadingBufferZone: 2,
trailingBufferZone: 2,
pageSize: 10,
proxy: {
type: 'ajax',
url: "/fetch/getNameList" // the API which returns data to load,
timeout: 5 * 60 * 1000,
reader: {
rootProperty: 'data.name',
totalProperty: 'data.recordSize'
},
simpleSortMode: true
}
});
Результат вызова ajax выглядит следующим образом: Отправляемая полезная нагрузка:
_dc: 1647375142598
page: 1
start: 0
limit: 10
Ответ на вызов ajax:
{success: true, errorCode: 0, errorMsg: null,…}
data: {recordSize: 10, limit: 9,…}
name: [{id: 1234, name: "Jake_Mar142022", appId: 1, isClosed: null,…},…]
0: {id: 1234, name: "TimMar142022", appId: 1, isClosed: null,…}
1: {id: 1252, name: "RatMar142022", appId: null, isClosed: null,…}
2: {id: 1253, name: "MycahMar142022", appId: null, isClosed: null,…}
3: {id: 1238, name: "MeganMar142022", appId: null, isClosed: null,…}
4: {id: 1191, name: "MikeMar092022", appId: null, isClosed: null,…}
5: {id: 1271, name: "TomMar142022", appId: null, isClosed: null,…}
6: {id: 1211, name: "RamMar092022", appId: null, isClosed: null,…}
7: {id: 1212, name: "JustinMar092022", appId: 1, isClosed: null,…}
8: {id: 1213, name: "AnnieMar092022", appId: null, isClosed: null,…}
9: {id: 1231, name: "AnnMar142022", appId: null, isClosed: null,…}
limit: 9
recordSize: 41
errorCode: 0
errorMsg: null
success: true
У вас есть несколько вызовов, потому что extjs пытается получить столько данных, сколько необходимо для заполнения видимой сетки ПЛЮС 2.
Если вы видите 26, это сделает 4 начальных вызова.
Чтобы получить один звонок, вам нужно установить pageSize
на 30.
Если вы хотите, чтобы было меньше звонков, вам нужно увеличить pageSize
в прокси, что увеличивает limit
.