查看: 415|回复: 2

[ASP函数] ASP实现缓存变量的函数

[复制链接]
xuanxiao 发表于 2022-2-21 21:15:45 | 显示全部楼层 |阅读模式
  1. Function Set_Cache_Value(Cache_Name,Cache_Val,Reload_Time)
  2.         Dim cacheValue,cacheReload_Time,Reload_TimeValue
  3.         cacheValue = Application("cache_"&Cache_Name)
  4.         cacheReload_Time = Application("cache_"&Cache_Name&"_Val")
  5.         if cacheValue = "" then
  6.                 cacheReload_Time = DateAdd("s",Reload_Time,Now)
  7.         end if
  8.         Reload_TimeValue = DateDiff("s", Now, cacheReload_Time)
  9.         if Reload_TimeValue > 0 and cacheValue <> "" then
  10.                 Set_Cache_Value = cacheValue
  11.         else
  12.                 Application.Lock
  13.                 Application("cache_"&Cache_Name) = Cache_Val
  14.                 Application("cache_"&Cache_Name&"_Val") = DateAdd("s",Reload_Time,Now)
  15.                 Application.UnLock
  16.         end if               
  17. End Function

  18. call set_Cache_Value("token",token,30*1*60*60*24)
复制代码


适合日常的变量缓存等
热米粉 发表于 2022-3-8 22:35:11 | 显示全部楼层
我也封装过类似的方法:cc(ns, initFunc, sec)
第二个参数和你的不一样,我是传一个方法进去。
当缓存 === null 的时候或者缓存到期的时候,就会执行 initFunc 方法,重新计生成新的缓存数据。
这样做的优势就是可以一些复杂的运算结果缓存之后,有效期内不会再次运算。

vbs 应该也能传方法到另一个方法里面执行,好像是一个  byref 的语法
 楼主| xuanxiao 发表于 2022-3-8 22:43:29 | 显示全部楼层
热米粉 发表于 2022-3-8 22:35
我也封装过类似的方法:cc(ns, initFunc, sec)
第二个参数和你的不一样,我是传一个方法进去。
当缓存 == ...

那就是传值声明个嘛,回头来试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表

在线客服

售前咨询
售后咨询
服务热线
023-58418553
微信公众号