小程序 下拉加载数据量大解决方法

小程序 下拉加载数据量大解决方法,第1张

一般来说,小程序下拉加载数据,用合并数组的方式(concat)然后再setData新的数组,这种方式只是试用数据量小的时候,为什么这么说,因为小程序的setData有一个限制,每次setData数据不能超过1024kb,大家可以想象一下,如果用concat合并产生新数组,并保存新数组为下一次加载的原数组,那么数量孙模大的时候肯定会出现数据的大小超过1024KB的限制,那么这种问题该怎么解决呢,说解决方法的时候渣洞先了解下小程序渲染的过程

这可以这样理解小程序已经把数据和视图绑定了起来,众所周知vue是数据双向绑定的,数据改变,视图也会相应的改变,而上面的那段话是不是可以理解为小程序也是双向绑定的,

在vue里修改数据可以写 this.a = b

小程序里修改数据需要  this.setData({"key":value})

那我们是不是可以这样理解在小程序修改数据的时候只是调用setData方法修改了定义中的变量,

跟vue中this.a = b 是一样的性质而只是写法不一样

明白了,这一点,说解决方法。。。

上面说了数据量大如凯枯的时候不能用concat的原因,那我们这时候该怎么解决,只是我们可以想,既然数据和视图绑定在一起了,我们是不是可以用一个二维数组解决这个问题

大概思路是这样的

1,在data里定义一个空数组,

2,获取下拉数据

3,把获取的数组,this.setData上面定义的数组

例如this.setData({

    [`arr[${b}]`]:res.data

})

这样就避免了setData数据过大而不报错的问题。

这时候数组发生了改变视图也会相应的改变,不过这样可能会出现一个问题,如果加载数据过多的时候视图会出现渲染层失败,

从人性化角度考虑,这种刷新后跳到开头的行为是符合大多数人的习惯的。如果你一定要回到刷新时罩盯尺的原位置,可以先利用Page的onPageScroll事件记录当前屏幕的scrollTop数值,在刷新完毕后再利用物高则兄wx.pageScrollTo方法返回所记录的位置。

1、在MYSQL中新建一个test数据库,在里面新建一张type数据表,下面将从该表获得数据。

2、新建一个project小程序项目。

3、在project项目内,新建一个index模块来从数据库获得数据,并将数据输出在index.wxml页面

4、在index模块中index.js页面,在onLoad中使用wx.request方法向服务端文件请求数据。url为请求数据的地址;data为传输的参数,这里设置为空;method为传递参数的方式,header用于设置请求的数据类型,success是成功获得数据后的敬乱型 *** 作。

5、在index.wxml页面,使用for循环遍历输出index.js传递过来的数据data,通过item将data数据输出在页面。

6、在服务端新建一个api.php页面来接收微信小程序的数据请求。

7、最后编译微信小程序,查看从数据表type获得数据内容,成功从数据库读取数据并输出在页面上。

1、在MYSQL中新建一个test数据库,在里面新建一张type数据表,下面将从该表获得数据。

2、新建一个project小程序项目。

3、在project项目内,新建一个index模块来从数据库获得数据,并将数据输出在index.wxml页面。

4、在index模块中index.js页面,在onLoad中使用wx.request方法向服务端文件请求数据。url为请求数据的地址;data为传输的参数,这里设置为空;method为传递参数的方式,header用于设置请求的数据类型,success是成功获得数据后的 *** 作。

5、在index.wxml页面,使用for循环遍历输出index.js传递过来的数据data,通过item将data数据输出在页面。

6、在服务端新建一个api.php页面来接陪族收微信小程序的数据请求。

7、最后编译微信小程序,查看从数据表type获得数据内容,成功从数据库读取数据并输出在页面上。

1、在MYSQL中新建一个test数据库,在里面新建一张type数据表,下面将从该表获得数据。

2、新建一个project小程序项目。

3、在project项目内,新建一个index模块来从数据库获得数据,并将数据输出在index.wxml页面。

4、在index模块中index.js页面,在onLoad中使用wx.request方法向服务端文件请求数据。url为请求数据的地址;data为传输的参数,这里设置为空;method为传递参数的方式,header用于设置请求的数据类型,success是成功获得数据后的 *** 作。

5、在index.wxml页面,使用for循环遍历输出index.js传递过来的数据data,通过item将data数据输出在页面。

6、在服务端新建一个api.php页面来接收微信小程序的数据请求。

7、最后编译微信小程序,查看从数据表type获得数据内容,成功从数据库读取数据并输出在页面上。

1、在MYSQL中新建一个test数据库,在里面新建一张type数据表,下面将从该表获得数据。数据表的数据如下:

2、新建一个project小程序项目,用于讲解微信小程序如何获得数据库数据。

3、在project项目内,新建一个index模块来从数据库获得数据,并将数据输出在index.wxml页面。

4、在index模块中index.js页面,在onLoad中使用wx.request方法向服务端文件请求数据。url为请求数据的地址;data为传输的参数,这里设置为空;method为亮猜传递参数的方式,header用于设置请求的数据类型,success是成功获得数据后的 *** 作,这里设置当成功获得数据后,把数据传递给index.wxml页面。

5、在index.wxml页面,使用for循环遍历输出index.js传递过来的数据data,通过item将data数据输出在页面。

6、编译微信小程序,查看从数据表type获得数据内容,可见,成功从数据库读取数据并输出在页面上。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8227202.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存