検索
ホームページウェブフロントエンドjsチュートリアルLauiui のプロジェクト最適化と非侵入的最適化の詳細な分析
Lauiui のプロジェクト最適化と非侵入的最適化の詳細な分析Aug 25, 2018 am 09:51 AM
layuiプロジェクトの最適化

この記事は、layui のプロジェクトの最適化と非侵入的最適化についての詳細な分析を提供します。必要な友人が参考になれば幸いです。

layuiに基づく実践的な最適化、非侵襲的な最適化フォーム日付オープンiframeデータテーブルアップロード検証フォームlaytplレイページレイツリーテーブルTree

Lauiui のプロジェクト最適化と非侵入的最適化の詳細な分析
#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 は動的に設定され、開始時間と終了時間は個別に入力されます
4. 入力選択ラジオチェックボックスのフォーカス外の検証を追加します
5. [独立したフォームの検証 (送信をトリガーする必要がなく、フィルターを設定する必要もありません) )](https://bable2000.gitee.io/layui-update/view-demo/verify-form.html)
6. ドロップダウンボタングループと検索選択ボックスを追加します(フリータイプ)
7. フォームグループを追加します。ボタングループ

###### 2. [簡易定型](https:/ /bable2000.gitee.io/layui-update/view-demo/fixed-table.html) (表ヘッダー固定、最初の列固定) 、最後の列を修正、テーブルの末尾を修正)

###### 3. [データテーブル](https://bable2000.gitee.io/layui-update/view-demo/data-table.html)
1. ヘッダーは固定され、最初の列は固定され、最後の列は固定され、末尾は固定されますが、フォームの構造はまったく変わりません
2. フォーム テンプレートをカスタマイズします (自分で変更できます)
3 . ページネーションはテーブルとは独立しています (データ要求後および表示前の処理を容易にします)
4. カスタム フォーム テンプレートのため、デフォルトのチェックボックスをオン/オフにすることができます
5. の最後に手動の「合計」の機能を追加しました。 the table

[data table.png](http://oyh4crb8q.bkt.clouddn.com/data-table.png)

#### ## 4. [laytplテンプレートの記述方法をvueモードに修正] (https://bable2000.gitee.io/layui-update/view-demo/laytpl.html)、laytpl の複雑なテンプレートを書くのは難しすぎます

### ### 5. レイヤーを最適化します (プロジェクトの要件に従って) )

1. [レイヤーの非同期リクエストを追加](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="$(&#39;.box&#39;).addClass(&#39;box-1&#39;)">改变1</button>
<button type="button" onclick="document.getElementById(&#39;d1&#39;).setAttribute(&#39;attr-1&#39;,&#39;x1&#39;)">改变2</button>
<button type="button" onclick="document.getElementById(&#39;d1&#39;).innerHTML=&#39;HTML&#39;">改变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 = &#39;data发生了改变↓&#39; + &#39;</br>&#39; +
 &#39;新值:&#39; + JSON.stringify(x) + &#39;</br>&#39; +
 &#39;旧值:&#39; + JSON.stringify(y) + &#39;</br>&#39; +
 &#39;key:&#39; + JSON.stringify(z);
 layer.alert(c);
});
$.watchDom(document.getElementById(&#39;d1&#39;), function() {
 layer.alert(&#39;box改变&#39;);
});
</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) =>非同期ファイルのプレビューが同期に変更されます (同じブラウザーのサポート)

* [ のコードを引用しますストリーミングしてから「最適化」](https://fly.layui.com/jie/31616/)

###### 7. 外部ファイルへの再帰参照

```
<imports href="../template/imports-1.tpl">同步引入失败替换内容(引入片段中允许有script)</imports>
<imports href="../template/imports-1.tpl" async>异步引入失败替换内容</imports>
```

##### # 8 .js は外部ファイルを導入します

> requires方法内部用promise实现缓存,如需重复请求一个动态文件,请加时间戳
```
"请求js"
requires(jsBase + &#39;imit.js&#39;); //同步阻塞引入js
requires(jsBase + &#39;imit.js&#39;, true); //异步引入js
requires(jsBase + &#39;imit.js&#39;, function(){/*加载成功回调*/}); //异步引入js
var req1=requires(jsBase + "tpl.js", true);
req1.then(function(){/*promise式请求*/});
"请求css"
requires(&#39;css|style1.css&#39;) //异步请求style1.css
"请求html,html#,tpl,ftl"
requires(&#39;text|file.tpl&#39;, function(html) {/*以文本形式引入file.tpl,剔除了<html><head><body>标签,*/})
requires(&#39;text|file.tpl#x1&#39;, function(x1) {/*引入file.tpl,并获取x1锚点内容*/})
requires(&#39;text|file.tpl#y1&#39;, function(y1) {/*不再发起重复请求,直接从file.tpl文件缓存中,并获取y1锚点内容*/})
```

#### ソフトウェアアーキテクチャ

layuiアーキテクチャに基づいています/**layui-v2.2.6 私のライセンス https://www.layui.com*/

#### インストールチュートリアル

layuiアーキテクチャに基づいています

layui 最初のバージョンは 2016 年の黄金の秋にリリースされました。MVVM の最下層に基づく UI とは異なります。 しかし、フレームワークは方向性に反するのではなく、自然に還る方法を信じています。正確に言うと、サーバー側のプログラマー向けに調整されており、さまざまなフロントエンド ツールの複雑な構成に関与する必要はなく、ブラウザ自体に直面するだけで、必要なすべての要素と操作を行うことができます。すぐに見つかります。

紹介する必要があるもの:

```
<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 プロジェクト最適化スキル (必須)

以上がLauiui のプロジェクト最適化と非侵入的最適化の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
如何利用Layui实现图片轮播图功能如何利用Layui实现图片轮播图功能Oct 24, 2023 am 08:27 AM

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

2023最新layui视频教程推荐(建议收藏)2023最新layui视频教程推荐(建议收藏)Jul 19, 2021 pm 05:22 PM

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

如何利用Layui实现图片拖拽和缩放效果如何利用Layui实现图片拖拽和缩放效果Oct 24, 2023 am 09:16 AM

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

如何利用Layui开发一个具有分页功能的数据展示页面如何利用Layui开发一个具有分页功能的数据展示页面Oct 24, 2023 pm 01:10 PM

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

如何利用Layui实现图片反色和亮度调节功能如何利用Layui实现图片反色和亮度调节功能Oct 25, 2023 am 09:10 AM

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

如何使用Layui开发一个支持文件上传和下载的资源管理系统如何使用Layui开发一个支持文件上传和下载的资源管理系统Oct 24, 2023 am 09:19 AM

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

如何使用Layui开发一个支持图片放大缩小的相册功能如何使用Layui开发一个支持图片放大缩小的相册功能Oct 24, 2023 am 09:02 AM

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

如何使用Layui框架开发一个支持实时通讯的在线客服系统如何使用Layui框架开发一个支持实时通讯的在线客服系统Oct 25, 2023 am 08:47 AM

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

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!