微信小程序 - 数据缓存 模拟 cookie
2017-05-15 09:51
501 查看
微信小程序本身是不支持cookie机制的,session依赖cookie(session_id 是存储在cookie中的),所以也就不支持session。
即是在php 中
java 中的session对象同样不会起作用
那么我们怎么去实现小程序的模拟cookie呢
我们都知道cookie和session的本质作用就是将数据保存起来。只是一个是将数据保存在客户端,一个是将数据保存到服务器。
使用微信小程序模拟cookie
首先先解释下javascript异步和同步的概念 以下要用。
异步:程序运行到这里时不会等待该处理结果(即是不会停留),会继续执行下面的逻辑程序。
同步:程序运行到这里时会等待处理结果返回,然后执行下面的逻辑程序。
1、数据存储
a、异步存储数据
wx.setStorage(OBJECT)
OBJECT参数说明(object 是一个json对象):
key String 是 本地缓存中的指定的 key
data Object/String 是 需要存储的内容
success Function 否 接口调用成功的回调函数
fail Function 否 接口调用失败的回调函数
complete Function 否 接口调用结束的回调函数(调用成功、失败都会执行)
b、同步存储数据
wx.setStorageSync(KEY,DATA)
将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。
key String 是 本地缓存中的指定的 key
data Object/String 是 需要存储的内容
可以根据你的需要进行业务的数据存储;
2、获取存储的数据
a、异步获取数据
从本地缓存中异步获取指定 key 对应的内容。
wx.getStorage(OBJECT)
OBJECT json对象:
key String 是 本地缓存中的指定的 key
success Function 是 接口调用的回调函数,res = {data: key对应的内容}
fail Function 否 接口调用失败的回调函数
complete Function 否 接口调用结束的回调函数(调用成功、失败都会执行)
b、同步获取数据
从本地缓存中同步获取指定 key 对应的内容。
wx.getStorageSync(KEY)
key String 是 本地缓存中的指定的 key
3、清空数据和清楚指定数据
a、同步清理本地数据缓存
wx.clearStorageSync()
b、清理本地所有数据缓存。
wx.clearStorage()
c、从本地缓存中同步移除指定 key 。
wx.removeStorageSync(KEY)
key String 是 本地缓存中的指定的 key 也就是存储的键名
d、从本地缓存中异步移除指定 key 。
wx.removeStorage(OBJECT)
Object json对象
key String 是 本地缓存中的指定的 key
success Function 是 接口调用的回调函数
fail Function 否 接口调用失败的回调函数
complete Function 否 接口调用结束的回调函数(调用成功、失败都会执行)
然后我们就来模拟了。
1、cookie : 针对需要实现cookie的数据,我们用本地缓存实现的时候可以在将数据存入的同时,在存入一个时间。当然这个时间是从后台生成前端获取的(这个时间其实是指该cookie数据的有效到期时间)。
然后我们每次从本地缓存中将数据取出来之前将时间拿出来验证,如果没有过期就返回,过期了就重新请求后台生成新的cookie返回对应数据。
所以cookie实现相对简单。
2、session : session 的数据是存储在服务器的,在客户端只有该session的session_id。所以基于cookie的实现,我们可以采用模拟cookie方法,将session_id存储在本地缓存中。然后每次客户端和服务器进行交互的时候客户端都先验证是否在本地存储了session_id,且验证session_id是否有效(cookie实现),如果存在且有效,就将session_id一同发送给服务器,服务器收到后,通过get、post等形式获取到session_id 然后带入相应的数据表查找相应的数据。从而模拟实现session机制。
session 实现依赖步骤cookie的实现。
学海无涯,大道至简。
即是在php 中
$_SESSION和
$_COOKIE是不会在微信小程序中起作用的。
java 中的session对象同样不会起作用
那么我们怎么去实现小程序的模拟cookie呢
我们都知道cookie和session的本质作用就是将数据保存起来。只是一个是将数据保存在客户端,一个是将数据保存到服务器。
使用微信小程序模拟cookie
首先先解释下javascript异步和同步的概念 以下要用。
异步:程序运行到这里时不会等待该处理结果(即是不会停留),会继续执行下面的逻辑程序。
同步:程序运行到这里时会等待处理结果返回,然后执行下面的逻辑程序。
1、数据存储
a、异步存储数据
wx.setStorage(OBJECT)
OBJECT参数说明(object 是一个json对象):
key String 是 本地缓存中的指定的 key
data Object/String 是 需要存储的内容
success Function 否 接口调用成功的回调函数
fail Function 否 接口调用失败的回调函数
complete Function 否 接口调用结束的回调函数(调用成功、失败都会执行)
b、同步存储数据
wx.setStorageSync(KEY,DATA)
将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。
key String 是 本地缓存中的指定的 key
data Object/String 是 需要存储的内容
可以根据你的需要进行业务的数据存储;
2、获取存储的数据
a、异步获取数据
从本地缓存中异步获取指定 key 对应的内容。
wx.getStorage(OBJECT)
OBJECT json对象:
key String 是 本地缓存中的指定的 key
success Function 是 接口调用的回调函数,res = {data: key对应的内容}
fail Function 否 接口调用失败的回调函数
complete Function 否 接口调用结束的回调函数(调用成功、失败都会执行)
b、同步获取数据
从本地缓存中同步获取指定 key 对应的内容。
wx.getStorageSync(KEY)
key String 是 本地缓存中的指定的 key
3、清空数据和清楚指定数据
a、同步清理本地数据缓存
wx.clearStorageSync()
b、清理本地所有数据缓存。
wx.clearStorage()
c、从本地缓存中同步移除指定 key 。
wx.removeStorageSync(KEY)
key String 是 本地缓存中的指定的 key 也就是存储的键名
d、从本地缓存中异步移除指定 key 。
wx.removeStorage(OBJECT)
Object json对象
key String 是 本地缓存中的指定的 key
success Function 是 接口调用的回调函数
fail Function 否 接口调用失败的回调函数
complete Function 否 接口调用结束的回调函数(调用成功、失败都会执行)
然后我们就来模拟了。
1、cookie : 针对需要实现cookie的数据,我们用本地缓存实现的时候可以在将数据存入的同时,在存入一个时间。当然这个时间是从后台生成前端获取的(这个时间其实是指该cookie数据的有效到期时间)。
然后我们每次从本地缓存中将数据取出来之前将时间拿出来验证,如果没有过期就返回,过期了就重新请求后台生成新的cookie返回对应数据。
所以cookie实现相对简单。
2、session : session 的数据是存储在服务器的,在客户端只有该session的session_id。所以基于cookie的实现,我们可以采用模拟cookie方法,将session_id存储在本地缓存中。然后每次客户端和服务器进行交互的时候客户端都先验证是否在本地存储了session_id,且验证session_id是否有效(cookie实现),如果存在且有效,就将session_id一同发送给服务器,服务器收到后,通过get、post等形式获取到session_id 然后带入相应的数据表查找相应的数据。从而模拟实现session机制。
session 实现依赖步骤cookie的实现。
学海无涯,大道至简。
相关文章推荐
- 微信小程序本地缓存数据增删改查实例详解
- 微信小程序数据缓存
- 微信小程序数据缓存API整理
- 微信小程序之数据缓存
- 第三节:微信小程序模拟动态加载服务器返回json数据
- 微信小程序 request返回的数据,模拟成功,但是在安卓机和IOS上都不成功
- 微信小程序之数据缓存
- 微信小程序模拟cookie的实现
- 微信小程序模拟接口渲染本地数据
- 微信小程序 模拟加载请求数据(六)
- 微信小程序本地缓存数据增删改查
- 微信小程序之数据缓存
- 微信小程序之数据缓存的实例详解
- 用Memcache守护程序把数据缓存到内存六
- OSChina_IOS版客户端笔记(四)_程序数据、缓存的管理
- 禁止ajax缓存获取程序最新数据的方法
- 程序退到后台在返回,application中的缓存数据被回收,导致程序异常
- 利用反射获得程序的缓存大小、应用程序大小、数据大小,利用反射清除缓存,全部清理
- .net通过一般处理程序模拟用户控件数据保持、Ispostback
- 在ASP.NET 2.0中操作数据之五十八:在程序启动阶段缓存数据