微信 HTML5 实现列表页与详情页无刷新返回 seesionStorage

本文主要是介绍微信 HTML5 实现列表页与详情页无刷新返回 seesionStorage,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近在最微信端开发,遇到了一个比较有意思的问题。 

1:商品分页列表页

2:商品详情页

需求:  实现当在第N页的列表页,点击ID=Num的商品详情页,跳转到详情页后,再点击返回按钮,依旧返回到列表第N页,并显式的改变ID=Num商品的查看状态

注:详情页与列表页是两个视图页,并且要考虑弱网请求服务端接口比较慢的情况


解决思路:使用sessionStorage

在列表页中将请求服务端接口返回的列表信息使用一个对象dataList存储起来,并记录当前的页码pageIndex,当点击跳转某个商品详情页之前,将dataList与pageIndex存储进sessionStorage中,当第二次返回到列表页后,先去sessionStorage中寻址,看能不能找到缓存的列表信息,如果存在,就直接使用缓存中的dataList填充列表页,同时清除seesionStorage中的listData缓存,如果不存在,就请求服务端接口填充列表

代码如下


       var pageIndex = 0;var historyData = [];var numID='id_0';var listData = {};$(function () {if (sessionStorage.getItem("listData")) {state = JSON.parse(sessionStorage.getItem("listData"));sessionStorage.removeItem("listData");//防止调转回列表页,点击刷新时,继续读缓存pageIndex = state.pageIndex;numID = state.numID;historyData = state.historyData;for (var i = 0; i < historyData.length; i++) {//填充列表的方法}//改变已查看的商品样式方法} else {LoadData();}})function LoadData() {$.ajax({type:'get',async:false,url:currentUrl+'leave/GetVacationInfos',headers: {"Token": token   },data:{uid:"xxx",pageSize:pageSize,pageIndex:pageIndex,},dataType:'json',success: function (result) {for (var i = 0; i < result.length; i++) {historyData.push({data:result[i]});}pageIndex++;}})}	//跳转详情页的方法(点击列表某一行时,调用)function ToDetail(id) {state = { pageIndex: pageIndex, numID: numID, historyData: historyData };sessionStorage.setItem("listData", JSON.stringify(state));window.location = 'ToDetail?numID=' + id;}
 

这篇关于微信 HTML5 实现列表页与详情页无刷新返回 seesionStorage的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/985986

相关文章

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

Java实现优雅日期处理的方案详解

《Java实现优雅日期处理的方案详解》在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB

Redis消息队列实现异步秒杀功能

《Redis消息队列实现异步秒杀功能》在高并发场景下,为了提高秒杀业务的性能,可将部分工作交给Redis处理,并通过异步方式执行,Redis提供了多种数据结构来实现消息队列,总结三种,本文详细介绍Re... 目录1 Redis消息队列1.1 List 结构1.2 Pub/Sub 模式1.3 Stream 结

C# Where 泛型约束的实现

《C#Where泛型约束的实现》本文主要介绍了C#Where泛型约束的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录使用的对象约束分类where T : structwhere T : classwhere T : ne

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

html5的响应式布局的方法示例详解

《html5的响应式布局的方法示例详解》:本文主要介绍了HTML5中使用媒体查询和Flexbox进行响应式布局的方法,简要介绍了CSSGrid布局的基础知识和如何实现自动换行的网格布局,详细内容请阅读本文,希望能对你有所帮助... 一 使用媒体查询响应式布局        使用的参数@media这是常用的

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab