首页 > 网站 > WEB开发 > 正文

zoeDylan.js框架-数据底层

2024-04-27 14:12:33
字体:
来源:转载
供稿:网友

zoeDylan.js框架-数据底层

zoeDylan.js是墨芈自己写的一套前端框架,不过由于墨芈经验不足,所以框架内部代码有些混乱.

墨芈写这套框架的目的是为了存储以后做前端开发过程中的一些代码,简单的说这套框架就是一个大杂烩.

这套框架主要分为3部分:数据底层(zoeDylan.js)、元素交互层(zoeDylan.element.js)和特效层(zoeDylan.**.js)

数据底层主要处理数据,不会存在任何操作DOM元素,数据底层也是这套框架的核心层.

元素交互层主要是处理元素之间的一些数据,不会存在太多的DOM交互操作,也就是这套框架直接访问DOM元素的地方。

特效层主要是现有的元素交互层基础上,增强一些元素交互的功能,比如:banner、下拉框、日历、自定义滚动条等等.(PS:元素交互层特效层的DOM操作是基于JQ,所以使用元素交互层时需要引用JQ框架,后期会把jq的DOM操作修改为纯JS的)

当然,特效层是需要样式表的。

这套框架现在还处于基础搭建状态,后期会不断进行优化和功能增加,因为墨芈时间有限(主要是偷懒),所以墨芈会在后期慢慢的更新,直到第一个版本出来为止。

现在这套框架还处于beta状态,整个框架现在都还是一个胚胎状态。

好了,废话不说了,直接上代码,有需要的童鞋直接拔代码就可以了。

  1 /*  2  * @license zoeDylanJS v0.01-beta  3  * (c) 2014-2015 zoeDylan .Inc  4  * License: MIT  5  */  6 (function (_extend) {  7     //扩展  8     _extend();  9  10     var getAttr = function (v) { 11         for (var i in v) { 12             console.info('【' + typeof (v[i]) + '】:' + i); 13         } 14     }, 15     versions = 'zoeDylanJS v0.01-beta'; 16     var zd = function () { 17         console.info('versions:' + versions); 18         getAttr(zd); 19     }; 20     /* 21      * 数据操作 22      */ 23     //【数据对象,默认参数】配置数据初始化, 24     zd.option = function (op, def) { 25         if (!op || op == null) { 26             return def; 27         } 28         if (!def || def == null) { 29             return op; 30         } 31         //循环获取变量 32         for (var i in op) { 33             var tmp = op[i]; 34             def[i] = tmp; 35         } 36         return def; 37     }; 38  39     /* 40      * GET区 41      */ 42  43     //随机数 44     zd.getRandom = function () { 45         return new Date().getTime() * Math.ceil(Math.random() * 100); 46     }; 47     //【json字符串,是否缓存(true|false)】 '{"id":"1","data":"sdc"}' 将传入值转换为json格式  48     zd.getJson = function (data) { 49         var 50             json = Function('return ' + data)(); 51         return json; 52     }; 53     //【是否添加缓存true|false,事件】获取一个随机id参数 添加缓存可接受一个事件 54     zd.getID = function (cache, fn) { 55         var 56             id = zd.config.id_random + zd.getRandom(); 57         if (cache) { 58             id = zd.cache.set(id, fn); 59         } 60         return id; 61     }; 62  63     /*  64      * 公用配置、设置、获取等 65      */ 66     //配置库  67     zd.config = (function () { 68         return { 69             //框架id属性标识@1 70             id: 'zoe_id',  71             //随机id前缀 72             id_random: 'random_', 73             //定时器变量前缀@2 74             timer: 'timer_', 75             //缓存组变量前缀 76             cache: 'cache_', 77  78             /* 79              * @1:属性标识:用于元素内联的一个自定义属性 80              * @2:变量前缀:用于缓存区变量的识别 81              */ 82         } 83     })(); 84  85     //公用库  86     zd.public = (function () { 87         return { 88             //缓存库 89             cache: {} 90         } 91     })(); 92  93     //缓存配置  94     zd.cache = (function () { 95         var 96  97            //【缓存名称(字符串,可不用),缓存参数】设置缓存 返回:缓存变量名字符串或者|false(失败), 98            _set = function (name, fn) { 99                try {100                    var101                    _name = typeof (name) == 'string' ? name : zd.config.cache + zd.getRandom(),102                    _fn = fn || null;103                    zd.public.cache[_name] = _fn;104                    return _name;105                } catch (e) {106                    return false;107                }108            },109 110            //【缓存名称】 获取缓存内容,返回:对应参数|false111            _get = function (name) {112                var113                    _name = _nameLegal(name);114                if (!_name) {115                    return false;116                }117                var118                    tmp = zd.public.cache[_name];119                //是否为空120                if (typeof (tmp) != 'undefined') {121                    return tmp122                } else {123                    return false;124                }125            },126            //【缓存名称】 移除缓存,返回:true|false127            _rem = function (name) {128                var129                    _name = _nameLegal(name);130                if (!_name) {131                    return false;132                }133                delete zd.public.cache[_name];134                return true135            },136            //【缓存名称】 指定缓存是否存在137            _atCache = function (name) {138                var139                    _name = _nameLegal(name),140                    tmp = zd.public.cache[_name];141                if (!_name) {142                    return false;143                }144                //是否为空145                if (typeof (tmp) != 'undefined') {146                    return tmp147                } else {148                    return false;149                }150            },151            //【缓存名称】名称是否合法152            _nameLegal = function (name) {153                var154                    _name = typeof (name) == 'string' ? name : false;155                if (_name) {156                    return _name157                } else {158                    return false;159                }160            };161         return ({162             set: _set,163             get: _get,164             rem: _rem165         });166     })();167 168     /*169      * Ajax部分170      */171     //【请求的url,完成后执行方法(json数据),错误(),请求类型[默认json]】172     zd.ajax = function (url, fn, err) {173         var174             _url = url,175             _fn = fn || function (c) { console.warn(c) },176             _err = err || function (c) {177                 console.warn({178                     "code": c,179                     "url": _url180                 });181             };182         var ajax = new xmlHttPRequest() || new ActiveXObject("Microsoft.xmlhttp");183         ajax.open("get", _url, true);184         ajax.onreadystatechange = function () {185             if (ajax.readyState == 4) {186                 if (ajax.status == 200) {187                     _fn(dgg.getJson(ajax.response || ajax.status));188                 } else {189                     _err(ajax.status);190                 }191             }192         };193         ajax.send();194     };195 196     /*197      * cookie操作198      */199     zd.cookie = (function () {200         var201             _set = function (name, value, expiresHours) {202                 value = encodeURIComponent(value);203                 if (expiresHours > 0) {204                     var data = new Date();205                     data.setTime(data.getTime() + (expiresHours * 3600 * 1000));206                     var expires = "; expires=" + data.toGMTString();207                 }208                 else expires = "";209                 document.cookie = name + "=" + value + expires + "; path=/";210 211             },212             _get = function (name) {213                 var strCookie = document.cookie;214                 var arrCookie = strCookie.split("; ");215                 for (var i = 0; i < arrCookie.length; i++) {216                     var arr = arrCookie[i].split("=");217                     if (arr[0] == name) return arr[1];218                 }219                 return "";220             },221             _del = function (name) {222                 document.cookie = name + "=;expires=" + (new Date(0)).toGMTString() + "; path=/";223             };224         return ({225             //名称、值、保存时间(小时)226             set: _set,227             get: _get,228             del: _del,229             rem: _del230         });231     })();232 233     /* 234      * 检测 235      */236     //各种检测 237     zd.test = (function () {238         return ({239             //定时器240             timer: function (op) {241
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表