刷新页面后,数据保留在原页面方法(session信息共享,ajax局部刷新)

本文介绍了在Web开发中如何利用服务器端session机制存储和获取数据。具体包括后台如何根据ID查找对象并将其存入session,以及前台如何从session中读取这些数据。

网上总共有三种方法:

1.采用session作用域保存数据在服务器当中,但是服务器压力大(session信息共享);

2.采用ajax局部



现在我们采用第一种:

后台:

根据库来查找对象(通过id)

找到对象,将对象直接塞进session中

session.setAttribute("自定义名", 对象);


前台调用:

${自定义名.属性}  那就可以了


再用$('#标签名').val('session.setAttribute("dt", dzdt);');


要实现点击下一页后覆盖页面数据(而非追加)的效果,需要修改分页逻辑中的数据合并方式。以下是修改后的关键代码部分: ```javascript // 修改 fetchApprovalList 方法中的数据合并逻辑 fetchApprovalList() { this.loading = true; const approvalData = { pageNum: this.pageNum, pageSize: this.pageSize, approval: { remark: '', id: 0, approvalType: 0, startTime: '', endTime: '' } }; approval_getList(approvalData).then(response => { this.total = response.total || 0; const newData = response.rows || []; // 关键修改:直接覆盖数据而不是追加 this.approvalList = newData; // 判断是否还有更多数据(用于显示提示) this.noMoreData = (newData.length < this.pageSize) || (this.pageNum * this.pageSize >= this.total); }).catch(error => { console.error('获取审批列表失败:', error); uni.showToast({ title: '加载失败', icon: 'none' }); }).finally(() => { this.loading = false; }); } ``` ### 完整实现说明: 1. **数据覆盖而非追加**: - 将 `this.approvalList = [...this.approvalList, ...newData]` - 改为 `this.approvalList = newData` 2. **分页组件调整**: ```html <uni-pagination :show-icon="true" :current="pageNum" :total="total" :pageSize="pageSize" title="审批分页" @change="handlePageChange" /> ``` 3. **滚动到顶部**(可选增强体验): ```javascript handlePageChange(e) { this.pageNum = e.current; // 添加返回顶部逻辑 uni.pageScrollTo({ scrollTop: 0, duration: 300 }); this.fetchApprovalList(); } ``` 4. **加载状态优化**: ```javascript data() { return { // 添加独立加载状态 pageLoading: false } } // 在方法中使用 fetchApprovalList() { this.pageLoading = true; // ...其他代码 }.finally(() => { this.pageLoading = false; }); ``` ### 为什么这样修改: - 追加模式 (`[...old, ...new]`) 适合无限滚动 - 覆盖模式 (`= newData`) 适合传统分页,每次翻页都重新加载当前页数据 - 避免了数据重复问题 - 更符合"下一页覆盖当前页"的预期行为 ### 注意事项: 1. 确保后端接口支持 `pageNum` 和 `pageSize` 参数 2. 如果使用下拉刷新,需要重置页码: ```javascript onPullDownRefresh() { this.pageNum = 1; this.fetchApprovalList().finally(() => { uni.stopPullDownRefresh(); }); } ``` 3. 考虑添加加载动画提升用户体验 这样修改后,每次点击分页组件切换页码时,都会用新数据完全替换当前列表内容,而不是在现有数据后追加新数据
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值