<!DOCTYPE html>
<head>
</head>
<body>
<input type="button" id="btn1" value="get请求" >
<script>
;!function(win) {
var o = {
modules: {},
status: {},
timeout: 10,
event: {}
} ,
t = document,
n = function() {
this.v = "2.4.5"
},
u = {
layer: "modules/layer",
laydate: "modules/laydate",
laypage: "modules/laypage",
laytpl: "modules/laytpl",
layim: "modules/layim",
layedit: "modules/layedit",
form: "modules/form",
upload: "modules/upload",
tree: "modules/tree",
table: "modules/table",
element: "modules/element",
rate: "modules/rate",
colorpicker: "modules/colorpicker",
slider: "modules/slider",
carousel: "modules/carousel",
flow: "modules/flow",
util: "modules/util",
code: "modules/code",
jquery: "modules/jquery",
mobile: "modules/mobile",
"layui.all": "../layui.all"
},
r = function() {
var e = t.currentScript ? t.currentScript.src : function() {
for (var e, o = t.scripts, n = o.length - 1, r = n; r > 0; r--)
if ("interactive" === o[r].readyState) {
e = o[r].src;
break
}
return e || o[n].src
}();
return e.substring(0, e.lastIndexOf("/") + 1)
}(),
i = function(t) {
e.console && console.error && console.error("Layui hint: " + t)
};
//扩展属性 (自执行函数的返回值)
n.prototype.modules = function() {
var e = {};
for (var t in u)
e[t] = u[t];
return e
}();
//扩展方法 config(e)
n.prototype.config = function(e) {
e = e || {};
for (var t in e)
o[t] = e[t];
return this
};
//扩展方法 extend(e)
n.prototype.extend = function(e) {
var t = this;
e = e || {};
for (var o in e)
t[o] || t.modules[o] ? i("模块名 " + o + " 已被占用") : t.modules[o] = e[o];
return t
};
//扩展方法 use(e)
n.prototype.use = function(e, n, l) {
function s(e, t) {
var n = "PLaySTATION 3" === navigator.platform ? /^complete$/ : /^(complete|loaded)$/;
("load" === e.type || n.test((e.currentTarget || e.srcElement).readyState)) && (o.modules[f] = t,
d.removeChild(v),
function r() {
return ++m > 1e3 * o.timeout / 4 ? i(f + " is not a valid module") : void (o.status[f] ? c() : setTimeout(r, 4))
}())
}
function c() {
l.push(layui[f]),
e.length > 1 ? y.use(e.slice(1), n, l) : "function" == typeof n && n.apply(layui, l)
} var y = this
, p = o.dir = o.dir ? o.dir : r
, d = t.getElementsByTagName("head")[0];
e = "string" == typeof e ? [e] : e,
window.jQuery && jQuery.fn.on && (y.each(e, function(t, o) {
"jquery" === o && e.splice(t, 1)
}),
layui.jquery = layui.$ = jQuery);
var f = e[0]
, m = 0;
if (l = l || [],
o.host = o.host || (p.match(/\/\/([\s\S]+?)\//) || ["//" + location.host + "/"])[0],
0 === e.length || layui["layui.all"] && u[f] || !layui["layui.all"] && layui["layui.mobile"] && u[f])
return c(),
y;
if (o.modules[f])
!function g() {
return ++m > 1e3 * o.timeout / 4 ? i(f + " is not a valid module") : void ("string" == typeof o.modules[f] && o.status[f] ? c() : setTimeout(g, 4))
}();
else {
var v = t.createElement("script")
, h = (u[f] ? p + "lay/" : /^\{\/\}/.test(y.modules[f]) ? "" : o.base || "") + (y.modules[f] || f) + ".js";
h = h.replace(/^\{\/\}/, ""),
v.async = !0,
v.charset = "utf-8",
v.src = h + function() {
var e = o.version === !0 ? o.v || (new Date).getTime() : o.version || "";
return e ? "?v=" + e : ""
}(),
d.appendChild(v), //追加节点 // GET file:///C:/lib/larryms/js/base.js?v=2.0.8 net::ERR_FILE_NOT_FOUND
!v.attachEvent || v.attachEvent.toString && v.attachEvent.toString().indexOf("[native code") < 0 || a ? v.addEventListener("load", function(e) {
s(e, h)
}, !1) : v.attachEvent("onreadystatechange", function(e) {
s(e, h)
}),
o.modules[f] = h
}
return y
} win.layui = new n; //继承
}(window); </script>
<script>
/* layui.config({version: "2.0.8",base: '/lib/larryms/',mods: 'list/',page: 'Department',isFunction: true})
.extend({larry: 'js/base'})
.use('larry');
var abc = null ||{version: "2.0.8"}; //==对象
var abc1 = 0 ||{version: "2.0.8"}; //==对象
var abc2 = 1 ||{version: "2.0.8"}; //==1
var obj = {version: "2.0.8"};
for(var t in obj)
{
//t="version"
// obj[t] = obj["version"]
// o[t] = o["version"]
}
*/
var t = layui.config({version: "2.0.8",base: '/lib/larryms/',mods: 'list/',page: 'Department',isFunction: true});
var t1 = t.extend({larry: 'js/base'});
t1.use('larry'); var y = 0; </script>
</body>
</html>

layui 源码解读(部分)的更多相关文章

  1. SDWebImage源码解读之SDWebImageDownloaderOperation

    第七篇 前言 本篇文章主要讲解下载操作的相关知识,SDWebImageDownloaderOperation的主要任务是把一张图片从服务器下载到内存中.下载数据并不难,如何对下载这一系列的任务进行设计 ...

  2. SDWebImage源码解读 之 NSData+ImageContentType

    第一篇 前言 从今天开始,我将开启一段源码解读的旅途了.在这里先暂时不透露具体解读的源码到底是哪些?因为也可能随着解读的进行会更改计划.但能够肯定的是,这一系列之中肯定会有Swift版本的代码. 说说 ...

  3. SDWebImage源码解读 之 UIImage+GIF

    第二篇 前言 本篇是和GIF相关的一个UIImage的分类.主要提供了三个方法: + (UIImage *)sd_animatedGIFNamed:(NSString *)name ----- 根据名 ...

  4. SDWebImage源码解读 之 SDWebImageCompat

    第三篇 前言 本篇主要解读SDWebImage的配置文件.正如compat的定义,该配置文件主要是兼容Apple的其他设备.也许我们真实的开发平台只有一个,但考虑各个平台的兼容性,对于框架有着很重要的 ...

  5. SDWebImage源码解读_之SDWebImageDecoder

    第四篇 前言 首先,我们要弄明白一个问题? 为什么要对UIImage进行解码呢?难道不能直接使用吗? 其实不解码也是可以使用的,假如说我们通过imageNamed:来加载image,系统默认会在主线程 ...

  6. SDWebImage源码解读之SDWebImageCache(上)

    第五篇 前言 本篇主要讲解图片缓存类的知识,虽然只涉及了图片方面的缓存的设计,但思想同样适用于别的方面的设计.在架构上来说,缓存算是存储设计的一部分.我们把各种不同的存储内容按照功能进行切割后,图片缓 ...

  7. SDWebImage源码解读之SDWebImageCache(下)

    第六篇 前言 我们在SDWebImageCache(上)中了解了这个缓存类大概的功能是什么?那么接下来就要看看这些功能是如何实现的? 再次强调,不管是图片的缓存还是其他各种不同形式的缓存,在原理上都极 ...

  8. AFNetworking 3.0 源码解读 总结(干货)(下)

    承接上一篇AFNetworking 3.0 源码解读 总结(干货)(上) 21.网络服务类型NSURLRequestNetworkServiceType 示例代码: typedef NS_ENUM(N ...

  9. AFNetworking 3.0 源码解读 总结(干货)(上)

    养成记笔记的习惯,对于一个软件工程师来说,我觉得很重要.记得在知乎上看到过一个问题,说是人类最大的缺点是什么?我个人觉得记忆算是一个缺点.它就像时间一样,会自己消散. 前言 终于写完了 AFNetwo ...

随机推荐

  1. 【Qt开发】QScrollArea添加布局后没有出现滚动条的解决方法

    [Qt开发]QScrollArea添加布局后没有出现滚动条的解决方法 标签:[Qt开发] 说明:尝试利用滚动区域显示多张图片,为了能够动态地往滚动区域贴图,为滚动区域设置了布局,然后通过布局来添加wi ...

  2. 【VS开发】【图像处理】 bayer, yuv, RGB转换方法

    因为我的STVxxx USB camera输出格式是bayer格式,手头上只有YUVTOOLS这个查看工具,没法验证STVxxx在开发板上是否正常工作. 网上找了很久也没找到格式转换工具,最后放弃了, ...

  3. mysql——前面内容——前期整理笔记00

    ), sname ), sage ), ssex ) ); ','zhaolei','1990-01-01','nan'); ','qiandian','1990-12-21','nan'); ',' ...

  4. python 迭代器(第二次总结)

    迭代器 1.先明白迭代器是什么意思 迭代:不断的取值的(器)工具 迭代器:就是一个重复的过程,每一次重复都是基于上一次的结果而来的. (单纯的重复不是迭代) 2.为什么要有迭代器 不依赖索引取值的方法 ...

  5. CAN 总线数据收发驱动

    目标:使用链表实现 CAN 总线数据的分帧发送和分帧数据的接收,同时将接收到的多帧数据合并成一个完整的数据包. 使用场合:当一个CAN总线网络上有多个端口对同一个端口发送分帧数据,且来自不同端口的分帧 ...

  6. Solrcloud+tomcat+zookeeper

    准备两台服务器,目录结构如下 主机名 IP地址 tomcat安装路径 zookeeper安装路径 solr安装路径 java安装路径 sht-sgmhadoopnn-01 172.16.101.55 ...

  7. 开发完成的springboot项目扩展 swagger

    第一步:pom.xml 引入 swagger 配置 <swagger.version>2.9.2</swagger.version> <!--swagger start- ...

  8. Vue中使用fullpage.js

    Vue中使用fullpage.js:https://blog.csdn.net/weixin_34184158/article/details/88672739

  9. hibernate字段映射枚举类型

    上一篇介绍了mybatis字段映射枚举类型,这一篇给大家介绍一下hibernate字段怎么去映射枚举类型的(这只是一种参考方式,映射方法还有很多种). 还是以上篇sku表为例,sku表里一个statu ...

  10. Luogu P4602 [CTSC2018]混合果汁

    题目 把果汁按美味度降序排序,以单价为下标插入主席树,记录每个节点的\(sum\)果汁升数和\(val\)果汁总价. 每次询问二分最小美味度,查询美味度大于等于\(mid\)的总体积为\(L\)的最低 ...