- 按键认证大神
- 2699998
- 3587
- 11
- 2173 朵
- 7386 个
- 1021 个
- 91120
- 2014-08-23
|
1#
t
T
发表于 2022-10-20 21:07
|
|只看楼主
- VBSBegin
- '【作者】:神梦无痕
- '【QQ】:1042207232
- '【Q群】:624655641
- ' cache对象中以键值对的形式存储我们的缓存数据
- Set Cache_Keys = CreateObject("Scripting.Dictionary")
- ' 带自动回收功能的数据缓存
- Function cache(key)
- Dim value, Keys, args
-
- ' 判断是否传值
- If IsArray(key) Then
- args = key
- If UBound(args) >= 1 Then
- Key = args(0)
- value = args(1)
- End If
- End If
- ' 如果传了值,就说名是设置值
- If value <> "" Then
- ' 如果cache对象中存在键值,则删除
- If Cache_Keys.Exists(key) Then Cache_Keys.Remove key
- ' 将数据存入cache对象,做缓存
- Cache_Keys.Add key, value
- ' 判断缓存中的数据数量是不是超出了限制
- If Cache_Keys.Count > 50 Then
- ' 如果超出了限制
- ' 删除掉最早存储缓存的数据
- Keys = Cache_Keys.Keys
- ' 获取到最早加入缓存的这个数据的键,可以使用它将数据从缓存中删除
- Cache_Keys.Remove Keys(0)
- End If
- End If
- ' 如果没有传值,只传了键,那就是获取值
- cache = Cache_Keys(key)
- End Function
- Function createCache()
- Set createCache = GetRef("cache")
- End Function
- VBSEnd
复制代码 演示例子- Set myCache = createCache()
- myCache Array("a", 1)
- myCache Array("b", 2)
- myCache Array("c", 3)
- myCache Array("d", 4)
- myCache Array("e", 5)
- myCache Array("a", 6)
- TracePrint myCache("b")
- DictKeys = Cache_Keys.Keys
- DictItems = Cache_Keys.Items
- For Counter = 0 To Cache_Keys.Count - 1
- TracePrint _
- "键: " & DictKeys(Counter) & _
- "值: " & DictItems(Counter)
- Next
复制代码
|