详情页返回列表内容缓存及定位实现

本文介绍了如何实现在前端中,从详情页返回列表时保持内容缓存并精确定位。利用sessionStorage缓存列表数据,记录文章ID,返回时检查缓存,使用IScroll进行元素定位。这种方法适用于处理返回时页面不刷新和焦点定位的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现目标

当前浏览到第N页,点击某一个新闻,进入新闻详情页,点击返回时,列表数据不重新加载,焦点仍定位在进入详情页之前的位置。

思路

  1. 缓存列表内已展示的数据;
  2. 进入详情页时在缓存内添加该新闻的ID(键为articleId);
  3. 返回时在js内判断缓存内是否包含articleId,如果存在,则通过缓存的列表数据进行页面渲染;
  4. 通过articleId定位元素,滚动窗口值该元素处;
  5. 缓存不能始终存在。

根据当前项目情况,考虑缓存放入sessionStorage,滚动窗口使用IScroll。

实现方案

1、缓存列表数据

//cacheKey 缓存key  cacheValue 缓存内容json结构  position 值为before和after分别用于加载最新和加载下一页 
function addToCache(cacheKey,cacheValue,position){
    cacheValue = JSON.stringify(cacheValue);
    var allCacheData = sessionStorage.getItem(cacheKey);
    if(allCacheData != null){
        if(position == "before"){
            allCacheData = cacheValue + "::::" +allCacheData;
        } else {
            allCacheData = allCacheData + "::::&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值