1. <!DOCTYPE html>
  2. <head>
  3. </head>
  4. <body>
  5. <input type="button" id="btn1" value="get请求" >
  6. <script>
  7. ;!function(win) {
  8. var o = {
  9. modules: {},
  10. status: {},
  11. timeout: 10,
  12. event: {}
  13. } ,
  14. t = document,
  15. n = function() {
  16. this.v = "2.4.5"
  17. },
  18. u = {
  19. layer: "modules/layer",
  20. laydate: "modules/laydate",
  21. laypage: "modules/laypage",
  22. laytpl: "modules/laytpl",
  23. layim: "modules/layim",
  24. layedit: "modules/layedit",
  25. form: "modules/form",
  26. upload: "modules/upload",
  27. tree: "modules/tree",
  28. table: "modules/table",
  29. element: "modules/element",
  30. rate: "modules/rate",
  31. colorpicker: "modules/colorpicker",
  32. slider: "modules/slider",
  33. carousel: "modules/carousel",
  34. flow: "modules/flow",
  35. util: "modules/util",
  36. code: "modules/code",
  37. jquery: "modules/jquery",
  38. mobile: "modules/mobile",
  39. "layui.all": "../layui.all"
  40. },
  41. r = function() {
  42. var e = t.currentScript ? t.currentScript.src : function() {
  43. for (var e, o = t.scripts, n = o.length - 1, r = n; r > 0; r--)
  44. if ("interactive" === o[r].readyState) {
  45. e = o[r].src;
  46. break
  47. }
  48. return e || o[n].src
  49. }();
  50. return e.substring(0, e.lastIndexOf("/") + 1)
  51. }(),
  52. i = function(t) {
  53. e.console && console.error && console.error("Layui hint: " + t)
  54. };
  55. //扩展属性 (自执行函数的返回值)
  56. n.prototype.modules = function() {
  57. var e = {};
  58. for (var t in u)
  59. e[t] = u[t];
  60. return e
  61. }();
  62. //扩展方法 config(e)
  63. n.prototype.config = function(e) {
  64. e = e || {};
  65. for (var t in e)
  66. o[t] = e[t];
  67. return this
  68. };
  69. //扩展方法 extend(e)
  70. n.prototype.extend = function(e) {
  71. var t = this;
  72. e = e || {};
  73. for (var o in e)
  74. t[o] || t.modules[o] ? i("模块名 " + o + " 已被占用") : t.modules[o] = e[o];
  75. return t
  76. };
  77. //扩展方法 use(e)
  78. n.prototype.use = function(e, n, l) {
  79. function s(e, t) {
  80. var n = "PLaySTATION 3" === navigator.platform ? /^complete$/ : /^(complete|loaded)$/;
  81. ("load" === e.type || n.test((e.currentTarget || e.srcElement).readyState)) && (o.modules[f] = t,
  82. d.removeChild(v),
  83. function r() {
  84. return ++m > 1e3 * o.timeout / 4 ? i(f + " is not a valid module") : void (o.status[f] ? c() : setTimeout(r, 4))
  85. }())
  86. }
  87. function c() {
  88. l.push(layui[f]),
  89. e.length > 1 ? y.use(e.slice(1), n, l) : "function" == typeof n && n.apply(layui, l)
  90. }
  91.  
  92. var y = this
  93. , p = o.dir = o.dir ? o.dir : r
  94. , d = t.getElementsByTagName("head")[0];
  95. e = "string" == typeof e ? [e] : e,
  96. window.jQuery && jQuery.fn.on && (y.each(e, function(t, o) {
  97. "jquery" === o && e.splice(t, 1)
  98. }),
  99. layui.jquery = layui.$ = jQuery);
  100. var f = e[0]
  101. , m = 0;
  102. if (l = l || [],
  103. o.host = o.host || (p.match(/\/\/([\s\S]+?)\//) || ["//" + location.host + "/"])[0],
  104. 0 === e.length || layui["layui.all"] && u[f] || !layui["layui.all"] && layui["layui.mobile"] && u[f])
  105. return c(),
  106. y;
  107. if (o.modules[f])
  108. !function g() {
  109. 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))
  110. }();
  111. else {
  112. var v = t.createElement("script")
  113. , h = (u[f] ? p + "lay/" : /^\{\/\}/.test(y.modules[f]) ? "" : o.base || "") + (y.modules[f] || f) + ".js";
  114. h = h.replace(/^\{\/\}/, ""),
  115. v.async = !0,
  116. v.charset = "utf-8",
  117. v.src = h + function() {
  118. var e = o.version === !0 ? o.v || (new Date).getTime() : o.version || "";
  119. return e ? "?v=" + e : ""
  120. }(),
  121. d.appendChild(v), //追加节点 // GET file:///C:/lib/larryms/js/base.js?v=2.0.8 net::ERR_FILE_NOT_FOUND
  122. !v.attachEvent || v.attachEvent.toString && v.attachEvent.toString().indexOf("[native code") < 0 || a ? v.addEventListener("load", function(e) {
  123. s(e, h)
  124. }, !1) : v.attachEvent("onreadystatechange", function(e) {
  125. s(e, h)
  126. }),
  127. o.modules[f] = h
  128. }
  129. return y
  130. }
  131.  
  132. win.layui = new n; //继承
  133. }(window);
  134.  
  135. </script>
  136. <script>
  137. /* layui.config({version: "2.0.8",base: '/lib/larryms/',mods: 'list/',page: 'Department',isFunction: true})
  138. .extend({larry: 'js/base'})
  139. .use('larry');
  140. var abc = null ||{version: "2.0.8"}; //==对象
  141. var abc1 = 0 ||{version: "2.0.8"}; //==对象
  142. var abc2 = 1 ||{version: "2.0.8"}; //==1
  143. var obj = {version: "2.0.8"};
  144. for(var t in obj)
  145. {
  146. //t="version"
  147. // obj[t] = obj["version"]
  148. // o[t] = o["version"]
  149. }
  150. */
  151. var t = layui.config({version: "2.0.8",base: '/lib/larryms/',mods: 'list/',page: 'Department',isFunction: true});
  152. var t1 = t.extend({larry: 'js/base'});
  153. t1.use('larry');
  154.  
  155. var y = 0;
  156.  
  157. </script>
  158. </body>
  159. </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. 引用dll出现了黄色感叹号

    今天引用一个dll的时候出现了一个小感叹号,重新生成也无济于事,如下图 原因是,被引用的项目使用的是.NET2.0版本,而当前项目使用的是.NET3.5版本,所以出现了错误 解决办法把当前项目和引用项 ...

  2. 软件设计分为结构化设计(SD)

    软件设计分为结构化设计(SD)与面向对象设计(OOD). 其中结构化设计SD是一种面向数据流的方法,它以SRS(软件需求规格说明书)和SA(结构化分析)阶段所产生的和数据字典等文档为基础,是一个自顶向 ...

  3. Django 前端通过json 取出后端数据

    Django 前端通过json 取出后端数据 前端通过json 取出后端数据 步骤1:后台数据通过 JSON 序列化成字符串a 注意:1.json是1个字符串 ​ 2.通过json.dumps('xx ...

  4. javascript高级程序设计读书笔记-事件(一)

    读书笔记,写的很乱   事件处理程序   事件处理程序分为三种: 1.html事件2. DOM0级,3,DOM2级别  没有DOM1 同样的事件 DOM0会顶掉html事件   因为他们都是属性  而 ...

  5. [.net core]11.异常页

    .net core中的异常页很重要 因为可以查看异常的堆栈信息, 请求的参数(如果有),cookie, http头 帮助我们快速的定位问题 .net core web app  默认开启了异常页,但是 ...

  6. RabbitMQ入门教程(一):安装和常用命令

    原文:RabbitMQ入门教程(一):安装和常用命令 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn ...

  7. luogu P1758 [NOI2009]管道取珠

    luogu 这个题中的平方有点东西,考虑他的组合意义,也就是做这个过程两次,如果两次得到的结果一样就给答案+1,所以可以考虑dp,设\(f_{i,j,k,l}\)表示第一个过程中上面取到的第\(i\) ...

  8. 初探html-17 表单

    HTML 表单和输入 HTML 表单用于收集不同类型的用户输入. 在线实例 <form action=""> First name: <input type=&q ...

  9. 绑定异常pom

    绑定:. <build> <resources> <resource> <directory>src/main/resources</direct ...

  10. Delphi 算术运算符与算术表达式