這篇文章帶給大家的內容是關於layui的專案優化以及無侵入優化的詳細解析,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
基於layui的實戰最佳化,無侵入性最佳化 form date open-iframe data-table upload verify-form laytpl laypage laytree tableTree
# layui-update
## 基於layui的實戰最佳化,無侵入性最佳化
[1. 表單元素最佳化](https ://bable2000.gitee.io/layui-update/view-demo/imit-form.html)
1、表單元素不用包裹在layui-form中
2、動態添加表單元素不用form.render()渲染
3、時間控制項無JS設定,min max動態設定,開始結束時間分開輸入
5、 [獨立form表單的校驗(不必要觸發提交,也不需要設定過濾器)](https://bable2000.gitee.io/layui-update/view-demo/verify-form.html)
6 、追加下拉按鈕群組、搜尋選擇框(自由型)
2. [簡化固定表格](https://bable2000.gitee .io/layui-update/view-demo/fixed-table.html)(表頭固定、第一列固定、最後一列固定、表尾固定)
# 3. [資料表](https://bable2000.gitee.io/layui-update/view-demo/data-table.html)
2. 自訂表單範本(可以自己修改)
3. 分頁與表格獨立開(便於資料請求後展示前的處理)
5. 新增了錶尾手動'合計'的功能
[資料表.png](http://oyh4crb8q.bkt.clouddn .com/data-table.png)
# 5. 最佳化layer(根據專案需求)
1. [添加layer的非同步請求](https://bable2000.gitee.io/layui-update/view-demo/layer-open.html),減少ajax->layer的嵌套
``` layer.open({ type: 1, async: true, //异步请求,content为请求地址 content: '../template/xx.tpl', data: { /*静态tpl文件搭配动态数据,生成动态提示框.*/ /*(好处:不用后端生成动态文件,不用前端拼接字符串,不用一次性把当前页面可能涉及的弹窗内容全部都提前加载完)*/ v1: '李先生,你好!', v2: '没有开通权限/已开通权限' }, btn: ['按钮一', '按钮二', '按钮三'], success: function(layero, index) { console.log(layero, index); } }) ```
2. [新增iframe彈跳視窗的開啟位置與溯原性](https://bable2000.gitee.io/layui-update/)
``` var open1 = function() { layer.open({ type: 2, goal: top, //顶层窗口top,父级窗口parent,父级的父级窗口parent.parent content: './view-demo/iframe-source-2.html', area: ['50%', '50%'], success: function() { console.log('加载完') } }) }; parent.layer.close(layerIndex) //当前窗口信息 layerSource.parent.layer.close(layerSource.layerIndex) //关闭打开当前窗口的窗口 console.log('iframe弹窗发起方 layerSource:', layerSource.document); console.log('iframe弹窗layer索引值 layerIndex:', layerIndex) ``` ###### 6. [数据变化监控](https://bable2000.gitee.io/layui-update/view-demo/watchData.html) , [指定节点变化监控](https://bable2000.gitee.io/layui-update/view-demo/watchDom.html) ``` <div id="d1" class="box" attr-1=""></div> <button type="button" onclick="$('.box').addClass('box-1')">改变1</button> <button type="button" onclick="document.getElementById('d1').setAttribute('attr-1','x1')">改变2</button> <button type="button" onclick="document.getElementById('d1').innerHTML='HTML'">改变3</button> <script type="text/javascript"> var data = { a: 200, b: [1, 2, 3], c: { c1: 1, c2: 2 } }; $.watchData(data, function(x, y, z) { var c = 'data发生了改变↓' + '</br>' + '新值:' + JSON.stringify(x) + '</br>' + '旧值:' + JSON.stringify(y) + '</br>' + 'key:' + JSON.stringify(z); layer.alert(c); }); $.watchDom(document.getElementById('d1'), function() { layer.alert('box改变'); }); </script> ```
# 6. [檔案上傳預覽,上傳進程列* 及各種前後端錯誤處理,檔案全螢幕預覽,旋轉](https://bable2000.gitee.io/layui-update/view-demo/upload.html)
[檔案上傳.png](http://oyh4crb8q.bkt.clouddn.com/file-1.png)
[檔案全螢幕預覽.png](http:// oyh4crb8q.bkt.clouddn.com/file-2.png)
1、reader.readAsDataURL(file)->window.URL.createObjectURL(file) =>非同步檔案預覽改為同步(瀏覽器支援相同)\* [引用Stream的程式碼,再'最佳化'](https://fly.layui.com/jie/31616/) 7. 外部檔案遞迴參考
``` <imports href="../template/imports-1.tpl">同步引入失败替换内容(引入片段中允许有script)</imports> <imports href="../template/imports-1.tpl" async>异步引入失败替换内容</imports> ```
> requires方法内部用promise实现缓存,如需重复请求一个动态文件,请加时间戳 ``` "请求js" requires(jsBase + 'imit.js'); //同步阻塞引入js requires(jsBase + 'imit.js', true); //异步引入js requires(jsBase + 'imit.js', function(){/*加载成功回调*/}); //异步引入js var req1=requires(jsBase + "tpl.js", true); req1.then(function(){/*promise式请求*/}); "请求css" requires('css|style1.css') //异步请求style1.css "请求html,html#,tpl,ftl" requires('text|file.tpl', function(html) {/*以文本形式引入file.tpl,剔除了<html><head><body>标签,*/}) requires('text|file.tpl#x1', function(x1) {/*引入file.tpl,并获取x1锚点内容*/}) requires('text|file.tpl#y1', function(y1) {/*不再发起重复请求,直接从file.tpl文件缓存中,并获取y1锚点内容*/}) ```
##軟體架構
基於layui架構/**layui-v2.2.6 MIT 許可證 https://www.layui.com*/
``` <link rel="stylesheet" type="text/css" href="../js/layui/css/layui.css" /> <link rel="stylesheet" type="text/css" href="../css/common.css" /> <script src="../js/jquery.min.js"></script> <script src="../js/layui/layui.js"></script> <script src="../js/common.js"></script> ```###相關推薦:##########JavaScript 專案最佳化總結############## #怎麼使用gulp自動最佳化requireJS的專案###############WEB專案最佳化技巧(必會)######
以上是layui的專案最佳化以及無侵入最佳化的詳細解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

如何利用Layui实现图片轮播图功能现如今,图片轮播图已经成为了网页设计中常见的元素之一。它可以使网页更加生动活泼,吸引用户的眼球,提升用户体验。在本文中,我们将介绍如何利用Layui框架来实现一个简单的图片轮播图功能。首先,我们需要在HTML页面中引入Layui的核心文件和样式文件:<linkrel="stylesheet"h

以下为大家整理了前端UI框架 — layui的视频教程,不需要从迅雷、百度云之类的第三方网盘平台下载,全部在线免费观看。教程由浅入深,有前端基础的人就能学习,从安装到案例讲解,全面详细,帮助你更快更好的掌握layui框架!

如何利用Layui开发一个具有分页功能的数据展示页面Layui是一个轻量级的前端UI框架,提供了简洁美观的界面组件和丰富的交互体验。在开发中,我们经常会遇到需要展示大量数据并进行分页的情况。以下是一个利用Layui开发的具有分页功能的数据展示页面的示例。首先,我们需要引入Layui的相关文件和依赖。在html页面的<head>标签中加入以下代

如何利用Layui实现图片拖拽和缩放效果在现代网页设计中,图片的交互效果成为增加网页活力和用户体验的重要手段。其中,图片拖拽和缩放效果是常见且受欢迎的交互方式之一。本文将介绍如何使用Layui框架实现图片拖拽和缩放效果,并提供具体的代码示例。一、引入Layui框架和相关依赖:首先,我们需要在HTML文件中引入Layui框架和相关依赖。可以通过以下代码示例引入

如何利用Layui实现图片反色和亮度调节功能引言:在前端开发中,经常会遇到需要对图片进行特效处理的情况。本文将介绍如何利用Layui框架实现图片反色和亮度调节功能,并提供具体代码实例供参考。一、Layui简介:Layui是一款优秀的前端UI框架,具有简洁、美观、易用等特点。它提供了丰富的前端组件,让开发者能够轻松搭建出精美的网站。二、准备工作:在开始之前,我

如何使用Layui开发一个支持图片放大缩小的相册功能相册功能在现代的网页应用中非常常见,通过展示用户上传的图片,让用户能够方便地浏览和管理图片。为了提供更好的用户体验,一种常见的需求是支持图片的放大和缩小功能。本文章将介绍如何使用Layui框架开发一个支持图片放大缩小的相册功能,同时提供具体的代码示例。首先,确保您已经引入Layui框架的CSS和JS文件。您

如何使用Layui开发一个支持文件上传和下载的资源管理系统引言:随着互联网的发展,数据资源的管理已经成为一项重要的任务。无论是企业内部的文档管理,还是个人的文件存储,都需要一个高效且易于使用的资源管理系统。Layui是一款轻量级的前端框架,具有简洁明了的设计以及丰富的组件库,非常适合用来进行资源管理系统的开发。本文将介绍如何使用Layui开发一个支持文

如何使用Layui框架开发一个支持实时通讯的在线客服系统概述:在线客服系统是现代企业提供与客户交流的重要渠道之一,而实时通讯是在线客服系统的关键技术之一。本文将介绍如何使用Layui框架开发一个支持实时通讯的在线客服系统,并提供具体的代码示例。一、准备工作安装Node.js:在开发环境中安装Node.js,并配置好相关环境。安装Layui:在项目中引入Lay


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Dreamweaver Mac版
視覺化網頁開發工具

記事本++7.3.1
好用且免費的程式碼編輯器

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器