我有一个js数组,由于它的大小,它会给我的electron应用程序带来一些问题,它将包含大约53000个对象。为了避免性能问题,在应用程序启动时加载数据时,如何拆分它?目前我从adodbc访问文件中获取数据,并使用vuejs将其推送到前端的数组中。
background.js
ipcMain.on('init', (event, ...args) => {
let suppliersData = false
let clientsData = false
suppliersdb.query('SELECT * FROM FANFOR0F_1')
.then( (results) => {
console.log(results.length)
//
suppliersData = true
//result.NEMA = result.NEMA.replace('§', '@')
event.sender.send('suppliersData', results)
}).catch( e => {
console.log(e)
event.sender.send('databaseUpdateError', e)
})
clientsdb.query('SELECT * FROM PDECON0F_1')
.then( (results) => {
console.log(results.length)
clientsData = true
event.sender.send('clientsData', results)
}).catch( e => {
console.log(e)
event.sender.send('databaseUpdateError', e)
})
//
if( suppliersData && clientsData ){
event.sender.send('databaseUpdateCompleted')
}
})
vue前端加载时间mounted()
钩子
window.ipcRenderer.send('init')
window.ipcRenderer.receive('suppliersData', (data) => {
this.suppliersDataAvailable = true
this.store.suppliers = data
})
window.ipcRenderer.receive('clientsData', (data) => {
console.log(data)
this.clientsDataAvailable = true
this.store.clients = data
})
我的想法是将其拆分为不同的页面或在页面滚动时延迟加载内容,我正在实现rxdb以获得数据的本地副本并减少应用程序启动时的加载时间。任何建议将不胜感激。
2条答案
按热度按时间8tntrjer1#
我发现了一个更简单的解决方案,涉及.slice()方法:
一切都一样。只是你不再需要那个临时数组了。
rmbxnbpk2#
我有一个解决办法:
你可以在arrayLengths中插入任何自然数,它都可以工作。你可以在数组中找到所有的数组