项目实战典型案例13——学情页面逻辑问题
学情页面逻辑问题
- 一:背景介绍
- 二:学情页面逻辑问题分析
- 逻辑问题
- 缓存滥用的问题
- 三:LocalStorage基础知识
- 数据结构
- 特性
- 应用场景
- localStorage常用方法
- 四:总结
- 升华
一:背景介绍
本篇博客是对项目开发中出现的学情页面逻辑问题进行的总结和改进。目的是将经历转变为自己的经验。通过博客的方式分享给大家,大家一起共同进步和提高。
前端Vue2,项目代码
代码的主要逻辑:
1.查询某个课程班级下该学生的评论、获赞、回复次数
2.如果返回的数据中评论次数、获赞次数、和回复次数都为0,则从缓存中获取相应数据。
3.如果评论次数为空,则将获赞次数、评论次数、回复次数置为0
4.如果该学生的评论次数、获赞次数、回复次数都不为0,将学生的评论,获赞、回复次数都存入缓存中。
二:学情页面逻辑问题分析
逻辑问题
1.学生的评论数为0的话,该学生的获赞数一定为0,但是回复数不一定为0。
这是存在严重的逻辑问题。
缓存滥用的问题
1.这里使用localStorage缓存来保存了接口返回的数据。
但是localStorage缓存适合长期保存在本地的数据,缓存常用于存储一些不经常改变的数据。对目前了解到的直接通过调用后端接口进行查询数据。没有必要存储在缓存中。
三:LocalStorage基础知识
数据结构
localstorage为标准的键值对(Key-Value,简称KV)数据类型,简单但也易扩展,只要以某种编码方式把想要存储进localstorage的对象给转化成字符串,就能轻松支持。另外对于键值对数据类型来说,"键是唯一的"这个特性也是相当重要的,重复以同一个键来赋值的话,会覆盖上次的值。
特性
1.除非被清楚,否则永久保存
2.存放数据大小一般为5MB
3.与服务器通信,仅在客户端(浏览器)中保存,不参与和服务器的通信
4.易用性,原生接口可以接受,也可以再次封装对对象和数组有更好的支持。(如用一个域名下,两个命名空间)
5. 由于浏览器的安全策略,localStorage无法跨域
6. localstorage原生不支持设置过期时间,想要设置需要自己来封装一层逻辑来实现
应用场景
localStoragese:适合长期保存在本地的数据,判断用户是否登陆,用于长期登陆的数据。用在多窗口(页面)共享数据,同一浏览器可以共享数据。
localStorage常用方法
localStorage.setItem(key,value) //存储数据
localStorage.getItem(key) //获取数据
localStorage.removeItem(key) //删除数据
localStorage.clear() //删除所有数据
可以在浏览器的console中进行使用localhost存取数据。

在Application中查看localStorage数据

四:总结
1.在项目开发过程中,使用一项技术必须要明确他的优势利弊,有没有更好的实现方案,前期灰度认知,后期和黑白决策。
2.需要具备二选二和二选三的思维。拒绝一选一,二选一的思维方式。
3. 为保证编写的代码的逻辑能够自洽,除了写好符合逻辑的代码之外,也可以从测试的角度来找出,规避掉逻辑有误的问题。
升华
1.只要思想不滑坡,办法总比困难多。
2.灰度认知,黑白决策,寻找最优解。
相关文章:
项目实战典型案例13——学情页面逻辑问题
学情页面逻辑问题一:背景介绍二:学情页面逻辑问题分析逻辑问题缓存滥用的问题三:LocalStorage基础知识数据结构特性应用场景localStorage常用方法四:总结升华一:背景介绍 本篇博客是对项目开发中出现的学情页面逻辑问…...
工作日志day02
1.云计算? 相关职位 开源软件和linux起源: 自由软件之父:理查德.斯托曼linux之父:林纳斯.本纳第克特.托瓦兹linux发行版 RHEL:Red Hat Enterprise Linux 红帽linux商业公司CentOS:Community Enterprise Operating Sys…...
C++Primer16.1.6节练习
练习16.28: 简易的shared_ptr代码如下 #include <iostream> #include <vector> #include <list> using namespace std;//shared_ptr模板 template<typename T>class SharedPtr {friend SharedPtr<T>& MakeShared(T* t); public…...
初尝并行编程
进程被分为后台进程和应用进程 大部分后台进程在系统开始运行时被操作系统启动,完成操作系统的基础服务功能。大部分应用进程由用户启动,完成用户所需的具体应用功能 进程由程序段、数据段、进程控制块三部分组成 程序段也被称为是代码段,…...
keepalived学习记录:对其vip漂移过程采用gdb跟踪
对其vip漂移过程采用gdb跟踪keepalived工具主要功能产生vip漂移过程两种情况gdb调试常用命令gdb调试时打到的函数栈(供学习参考)函数栈的图是本人理解下画的,不对请多指正 keepalived主要有三个进程,父进程是core进程,…...
51单片机串口通讯原理及程序源码-----day8
51单片机串口通讯原理及程序源码-----day8 1.定义单片机为TTL电平:高 5V 低 0V RS232电平: 计算机的串口高 -12V 低12V 所以计算机与单片机之间通讯时需要加电平转换芯片CH340T 、 MAX232。 2.通信分类: (1)并行通信通…...
mongodb入门到使用(下)
mongodb中常用命令操作一、用户操作二、创建用户三、数据库操作基本操作四、扩展操作五、集合操作一、用户操作 在mongo中使用mongodb都需要在admin数据库中操作。然后在使用下面的命令 use admin二、创建用户 db.createUser({"user":"imooc", #用户名&q…...
云HIS系统源码 医院his源码 云his源码
大型医院his系统源码 SaaS运维平台多医院入驻强大的电子病历完整文档 ,有演示 一、系统概述: 基层卫生健康云是一款满足基层医疗机构各类业务需要的健康云产品。该产品能帮助基层医疗机构完成日常各类业务,提供病患挂号支持、病患问诊、电子…...
朴素贝叶斯法学习笔记
频率派和贝叶斯派 频率派认为可以通过大量实验,从样本推断总体。比如假定总体服从均值为μ\muμ,方差为σ\sigmaσ的分布。根据中心极限定理,是可以通过抽样估算总体的参数的,而且抽样次数越多,对总体的估计就越准确。…...
vscode与C++安装与使用【不好用来骂我】
网上教程很多,但是都不太好用,这是我垃圾堆里淘金淘出来的教程: 安装软件 安装 Visual Studio Code: 你需要下载并安装 Visual Studio Code,可以在官网下载 https://code.visualstudio.com/download。 安装 C 扩展: 在 Visual S…...
C++11使用多线程(线程池)计算相似度实现性能优化
需求:图像识别中,注册的样本多了会影响计算速度,成为性能瓶颈,其中一个优化方法就是使用多线程。例如,注册了了3000个特征,每个特征4096个float。可以把3000个特征比对放到4个线程中进行计算,然…...
【测绘程序设计】——平面坐标转换
测绘工程中经常遇到平面坐标转换——比如,北京54(或西安80)平面坐标转换成CGCS2000平面坐标、工程独立坐标系平面坐标转换成CGCS2000平面坐标等,常用转换模型包括:①三参数法(2平移+1旋转);②四参数法(赫尔默特法,2平移+1旋转+1尺度);③六参数法(仿射变换法,2平移…...
五子棋的设计与实现
术:Java等摘要:五子棋是一种两人对弈的纯策略型棋类游戏,非常容易上手,老少皆宜。为了更好的推广五子棋,研究简单的人工智能方式,运用Java开发五子棋游戏。主要包含了人机对战,棋盘初始化&#…...
大数据项目软硬件选择
目录 一.技术选型 二.系统数据流程设计 三.框架版本选型 如何选择Apache/CDH/HDP版本...
redis数据结构的适用场景分析
1、String 类型的内存空间消耗问题,以及选择节省内存开销的数据类型的解决方案。 为什么 String 类型内存开销大? 图片 ID 和图片存储对象 ID 都是 10 位数,我们可以用两个 8 字节的 Long 类型表示这两个 ID。因为 8 字节的 Long 类型最大可以…...
同步、异步、全双工、半双工的区别
1、通讯 1.1 并行通讯 定义:一条信息的各位数据被同时传送的通讯方式称为并行通讯; 特点: 各个数据位同时发送,传送速度快、效率高,但有多少数据位就需要多少根数据线,因此传送成本高,并且只…...
ClickHouse 与 Amazon S3 结合?一起来探索其中奥秘
目录ClickHouse 简介ClickHouse 与对象存储ClickHouse 与 S3 结合的三种方法示例参考架构小结参考资料ClickHouse 简介ClickHouse 是一种快速的、开源的、用于联机分析(OLAP)的列式数据库管理系统(DBMS),由俄罗斯的Yan…...
【Spark分布式内存计算框架——Structured Streaming】1. Structured Streaming 概述
前言 Apache Spark在2016年的时候启动了Structured Streaming项目,一个基于Spark SQL的全新流计算引擎Structured Streaming,让用户像编写批处理程序一样简单地编写高性能的流处理程序。 Structured Streaming并不是对Spark Streaming的简单改进…...
【Windows】【Linux】---- Java证书导入
问题: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 无法找到请求目标的有效证书路径 一、Windows—java证书导入 1、下载证书到本地(以下…...
【Linux学习】菜鸟入门——gcc与g++简要使用
一、gcc/g gcc/g是编译器,gcc是GCC(GUN Compiler Collection,GUN编译器集合)中的C编译器;g是GCC中的C编译器。使用g编译文件时会自动链接STL标准库,而gcc不会自动链接STL标准库。下面简单介绍一下Linux环境下(Windows差…...
保姆级教程:用vLLM在双GPU服务器上部署secGpt14b模型(含tmux后台运行与参数调优)
双GPU服务器实战:vLLM驱动secGpt14b模型高效部署指南 当你面对一台配备双GPU的服务器,如何将secGpt14b这样的百亿参数大模型转化为稳定可用的API服务?这不仅是技术能力的考验,更是资源优化艺术的体现。本文将带你深入vLLM引擎的核…...
Vxe-Table横向也能无限滚?搞定超宽表格列动态加载的完整配置指南
Vxe-Table横向无限滚动实战:超宽表格列动态加载的终极解决方案 在金融分析、数据报表和动态表单等场景中,前端开发者经常面临一个棘手问题:如何处理字段数量可能无限增长的宽表格?传统分页方式会割裂数据连续性,而一次…...
单机游戏的多人革命:Nucleus Co-Op如何重构本地游戏体验
单机游戏的多人革命:Nucleus Co-Op如何重构本地游戏体验 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 【需求场景:当游戏…...
Source Han Serif CN:终极开源中文字体深度技术指南
Source Han Serif CN:终极开源中文字体深度技术指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf Source Han Serif CN(思源宋体)是Google与Adobe…...
工业通信系统安装:从网络架构到现场落地的完整技术指南
一、什么是工业通信系统安装?为什么它比普通弱电施工要求更高?工业通信系统安装,指的是围绕工业生产场景,对控制层、监控层、管理层之间的数据传输链路进行规划、布线、接线、组网、调试、联动和验收的全过程。它不是单纯的网络工…...
2026知识付费平台选择指南:学习者与创作者如何各取所需
2026年,知识付费行业已进入成熟期。据艾媒咨询(iiMedia Research)预测,2026 年中国知识付费市场规模将突破3000 亿元,较 2025 年的 2808.8 亿元持续增长。然而,平台分化加剧——有的平台陷入内容同质化困境…...
全网薅羊毛新地图”:华莱士套餐实测13.9元起,连锁巨头麦当劳紧随其后!
近期,随着经济压力的加大,餐饮市场的竞争愈发激烈。在原本以低价策略闻名的麦当劳“穷鬼套餐”开始面临严峻挑战之际,一家曾被网友戏称为“穷鬼旗舰”的连锁快餐品牌——华莱士,悄然推出了更具性价比的“超值套餐”,在…...
智能物流分拣破局:越疆协作分拣机器人高效升级指南
在电商、快递行业的高速发展下,物流分拣的压力越来越大,但长期以来,中小物流企业的分拣面临 “两难” 困境:人工分拣招工难、效率低,错分率达 1% 以上,大促期间更是人手不足;而传统的交叉带分拣…...
Wan2.1 VAE效果对比:不同潜在空间维度下的生成图像质量分析
Wan2.1 VAE效果对比:不同潜在空间维度下的生成图像质量分析 最近在折腾图像生成模型时,我发现一个挺有意思的问题:模型里那个叫“潜在空间维度”的参数,到底该怎么选?是越大越好,还是够用就行?…...
低成本工业机器人:开源六轴机械臂从技术原理到生态落地全指南
低成本工业机器人:开源六轴机械臂从技术原理到生态落地全指南 【免费下载链接】Faze4-Robotic-arm All files for 6 axis robot arm with cycloidal gearboxes . 项目地址: https://gitcode.com/gh_mirrors/fa/Faze4-Robotic-arm 技术原理:打破工…...
