文档章节

分析jQuery缓存实现

JSON_P
 JSON_P
发布于 2016/08/22 00:22
字数 276
阅读 18
收藏 1

    jQuery最基本的缓存结构,大家应该都清楚,例如:var cache = {}; 怎么去实现缓存的设置和获取呢?我们要先解决这个问题!     

案例:实现缓存的设置和获取

// 设置var fn = function(k, v) {
    cache[k] = v;};

// 获取// 1 var cacheValue = cache[k];// 2 var getV = function(k) {
    return cache[k];};

缓存注意事项

1 缓存数量要在一定范围内,例如:100条

2 缓存数据要可控,增删改查

3 缓存需要被保护

实现缓存数据

var createCache = function(){
    var internalCache = {};
    var arr = [];

    return function (k, v) {
        if(v) {
            if(!internalCache[k]) {
                if(arr.length >= 50) {
                    var deleteKey = arr.shift();
                    delete internalCache[k];
                }
                arr.push(k);
            }
            internalCache[k] = v;
        } else {
            return internalCache[k];
        }
    };};

jQuery中缓存的实现

/** * Create key-value caches of limited size * 创建带有长度限制的键值对缓存 */function createCache() {
    var keys = [];

    function cache( key, value ) {
        // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
        // 使用(key + " ") 是为了避免和原生(本地)的原型中的属性冲突
        if ( keys.push( key + " " ) > Expr.cacheLength ) {
            // Only keep the most recent entries
            // 只保留最新存入的数据
            delete cache[ keys.shift() ];
        }
        return (cache[ key + " " ] = value);
    }
    return cache;}

var typeCache = createCache();


typeCache("cls", "stra");typeCache["cls"];

© 著作权归作者所有

JSON_P
粉丝 7
博文 18
码字总数 9688
作品 0
闵行
前端工程师
私信 提问
jQuery数据缓存data(name, value)详解及实现

作为一名程序员,一提到“缓存”你很容易联想到“客户端(浏览器缓存)”和“服务器缓存”。客户端缓存是存在浏览者电脑硬盘上的,即浏览器临时文件夹,而服务器缓存是存在服务器内存中,当然...

i33
2013/03/04
368
0
关于JQuery的clone方法无法拷贝data缓存数据的问题。

今天遇到一个问题,发现JQuery在clone后缓存在对象内的缓存data不见了,百思不得其解,原来是JQuery1.3.2之后改变了做法。 jQuery复制节点clone()方法不会复制data缓存,准确说jQuery不会在全...

jing31
2010/09/14
2.1K
3
《JavaScript实用效果整理》系列分享专栏

整理一些使用的JavaScript效果,在Web开发中遇到的比较好的动态效果,都收藏在这里,对以后的网站开发增加不少的色彩 《JavaScript实用效果整理》已整理成PDF文档,点击可直接下载至本地查阅...

开元中国2015
2018/10/29
63
0
高效的jQuery代码编写技巧总结

最近写了很多的js,虽然效果都实现了,但是总感觉自己写的js在性能上还能有很大的提升。本文我计划总结一些网上找的和我本人的一些建议,来提升你的jQuery和javascript代码。好的代码会带来速...

Jesons
2014/12/02
143
0
从零实现一个简易的jQuery框架之二—核心思路详解

如何读源码 整体框架甚是复杂,也不易读懂。但是若想要在前端的路上走得更远、更好,研究分析前端的框架无疑是进阶路上必经之路。但是庞大的源码往往让我们不知道从何处开始下手。在很长的时...

余大彬
2018/08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

深入理解表单脚本系列第二篇——表单字段

本文转载于:专业的前端网站➜深入理解表单脚本系列第二篇——表单字段 前面的话   表单字段又叫表单元素,表示表单所包含控件,如<input>、<select>等。本文将详细介绍表单字段的内容 访问...

前端老手
12分钟前
3
0
前端技术之:常用webpack插件

1、html-webpack-plugin Simplifies creation of HTML files to serve your webpack bundles. 主页地址: https://github.com/jantimon/html-webpack-plugin 安装方法: npm i --save-dev h......

popgis
17分钟前
4
0
IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1

HTML5拥有多个新的表单输入类型,这些新特性提供了更好的输入控制和验证。并不是所有的主浏览器都支持新的input类型,不过我们可以在所有的主浏览器中使用它们,即使不被支持,仍然可以显示为...

老码农的一亩三分地
18分钟前
4
0
规则引擎

解决问题 版本迭代速度更不上业务变化,但是若多个业务同时变化,除了为每个业务设计专属配置项也不利于操作。就想服务接口单纯化,将复杂多变的业务逻辑交给规则引擎,让用户在web端或cs端自...

无极之岚
55分钟前
7
0
OSChina 周三乱弹 —— 欢迎你来做产品经理

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :10多次劲歌金曲获奖,更多叱咤歌坛排名,黎明才应该是四大天王之首,只可惜拍的电影太少。单曲循环一个多月的歌,力荐 《无名份的...

小小编辑
今天
645
10

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部