当前位置: 首页 > news >正文

装饰设计资质乙级新手seo入门教程

装饰设计资质乙级,新手seo入门教程,北京天奕时代创意设计有限公司,同城推广平台有哪些前言 咱们的网站或者程序,每一个页面和操作都需要请求后端接口来获取响应和渲染页面,抛开post请求方式的接口不说,部分get请求得到的数据,短时间内不会更新,或者短时间得到的响应数据不会变化,这个时候就可…

前言

咱们的网站或者程序,每一个页面和操作都需要请求后端接口来获取响应和渲染页面,抛开post请求方式的接口不说,部分get请求得到的数据,短时间内不会更新,或者短时间得到的响应数据不会变化,这个时候就可以把从接口得到的数据缓存下来,下次刷新或者是请求接口的时候,就不用请求接口,从而大幅度提高用户体验。

当然,如果服务器的流量很多且兆宽也比较大,可以自动忽略。

不过自研小网站,或者资讯类、文字类数据量比较大的程序就可以完全利用起来了。

实现

storage.ts

  • 首先肯定是需要缓存的工具类,来直接使用
/*** 封装操作localstorage本地存储的方法*/
export const storage = {//存储set(key: string, value: any, expires: number) {const obj = {value: value,expires: expires,//有效时间startTime: new Date().getTime() // 记录存储数据的时间,转换为毫秒值存下来}// 判断是否设置了有效时间if (obj.expires) {// 如果设置了时间,把obj转换数据类型转换为字符串对象存起来localStorage.setItem(key, JSON.stringify(obj))}else {// 如果没有设置有效时间,直接把value值存进去localStorage.setItem(key, JSON.stringify(obj.value))}},//取出数据get<T>(key: string) {// 先定义一个变量临时存放提取的值const temp = <T>JSON.parse(localStorage.getItem(key))// 判断有没有设置expires属性// 如果有,就需要判断是否到期了if (temp && temp != "undefined" && temp != "null" && temp.expires ) {let data = new Date().getTime()if (data - temp.startTime > temp.expires) {// 此时说明数据已过期,清除掉localStorage.removeItem(key)// 直接returnreturn}else {// 如果没有过期就输出return temp.value}}else {// 如果没有设置,直接输出return temp}},// 删除数据remove(key: string) {localStorage.removeItem(key)}
};/*** 封装操作sessionStorage本地存储的方法*/
export const sessionStorage = {//存储set(key: string, value: any) {window.sessionStorage.setItem(key, JSON.stringify(value))},//取出数据get<T>(key: string) {const value = window.sessionStorage.getItem(key)if (value && value != "undefined" && value != "null") {return JSON.parse(value)}return null},// 删除数据remove(key: string) {window.sessionStorage.removeItem(key)}
}

cacheAxios.ts

  • 其实就是将自己的axios请求做个处理,请求的时候用封装的工具请求类即可
  • 我举例的是localStorage,大家可以根据自行需要来使用sessionStorage
  • sessionStorage就没有cacheTime 了,可以自行设置
import axios from '@/utils/axios'
import { storage } from '@/utils/storage'interface optionsFace {isCache?: boolean; // 是否缓存cacheKey?: string; // 缓存key值cacheTime?: number; // 缓存默认值 默认为3天 86400 * 3,单位秒
}const request = async (config: any, {isCache = false, cacheKey, cacheTime = 86400 * 3}: optionsFace) => {// 判断是否需要缓存数据,if (isCache) {const cacheData = storage.get(cacheKey)if (cacheData) {// 有缓存数据直接返回return new Promise((resolve) => {resolve(cacheData)})}else {const resData = await axios(config)// 根据自己的接口来判断if (resData.code != 0) {storage.set(cacheKey, resData, cacheTime * 1000)}// 返回结果return new Promise((resolve) => {resolve(resData)})}} else {return axios(config)}
}export default request

api.ts

  • 接口工具类,使用方式就都一模一样的
// 使用封装的缓存axios
import request from '@/utils/cacheAxios';/*** 功能:获取 列表*/
export const getList = (params: Object, options: Object) => {return request({url: '/Wikipedia/getList',method: 'get',params: params}, options);
};

页面使用

/*** 功能:获取 首页数据*/
const getHome = () => {// 这里的cacheKey,可以拼接上页码// const cacheKey = 'homeData' + pageCurrent// 配置里还有个时间参数,工具类里是默认3天,可以自行设置getList({}, {isCache: true, cacheKey: 'homeData'}).then(res => {// 逻辑处理、即使是缓存得到的数据也是一样的,不会影响业务处理})
}

小结

  • 很多人可能不会使用这个多余的操作,可是我自研了中小型网站,很多数据需要频繁渲染,且数据都是一样的,所以需要如此来降低服务器的成本和前端体验
  • 缓存的数据,建议是列表类数据,全是明文的,这样即使别人拿到也没用
  • 本文是基于vue,不过react、小程序、uniapp改一下同样适用
http://www.dinnco.com/news/75355.html

相关文章:

  • 摄影网站建设seo教程论坛
  • 购物网站分为几个模块推广软文营销案例
  • 甘肃网站建设推广服务北京seo软件
  • 域名怎么绑定自己网站站外推广方式
  • 班级博客网站模板谷歌搜索关键词排名
  • 设计素材免费下载郑州seo公司排名
  • 国外建设网站用的是什么软件网站站长
  • 网推项目接单平台关键词排名优化营销推广
  • 彩票网站怎么做推广代运营哪家公司最靠谱
  • dw做网站 如何设置转动seo还有未来吗
  • 温州做高端网站公司排名网站设计的毕业论文
  • 网站模板上传教程免费做网站怎么做网站链接
  • 网站备案没通过不了网站制作app
  • 营销网站建设整合网站营销专家网络推广方案的基本思路
  • 公司网页设计公司招聘seo研究中心
  • 佛山白坭网站建设下载优化大师app
  • 北京市建设局网站首页网络营销有哪些推广方法
  • 有什么网站可以做任务赚钱搜索引擎关键词优化技巧
  • 网站开发工程师 课程大纲双桥seo排名优化培训
  • c2c网站页面设计特点网站seo检测
  • 天津宇昊建设集团有限公司网站纹身网站设计
  • 英文网站建设电话一个完整的策划案范文
  • 做网站的职业上海seo优化外包公司
  • flash在线制作网站免费加客源软件
  • 山西网站制作公司哪家好2023最近爆发的流感叫什么
  • 衡阳网站建设步骤石家庄网站建设排名
  • 深圳定制网站制作seo优化排名易下拉效率
  • 网站都有什么类型域名是什么
  • 做短视频网站用哪家cmswindows优化大师的作用
  • 一起做网店网站入驻收费国际新闻最新消息十条