この記事は、layui のプロジェクトの最適化と非侵入的最適化についての詳細な分析を提供します。必要な友人が参考になれば幸いです。
layuiに基づく実践的な最適化、非侵襲的な最適化フォーム日付オープンiframeデータテーブルアップロード検証フォームlaytplレイページレイツリーテーブルTree
#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="$('.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) =>非同期ファイルのプレビューが同期に変更されます (同じブラウザーのサポート)
* [ のコードを引用しますストリーミングしてから「最適化」](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 + '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 私のライセンス 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> ```
関連する推奨事項:
gulp を使用して requireJS プロジェクトを自動的に最適化する方法
以上がLauiui のプロジェクト最適化と非侵入的最適化の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JavaScriptコアデータ型は、ブラウザとnode.jsで一貫していますが、余分なタイプとは異なる方法で処理されます。 1)グローバルオブジェクトはブラウザのウィンドウであり、node.jsのグローバルです2)バイナリデータの処理に使用されるNode.jsの一意のバッファオブジェクト。 3)パフォーマンスと時間の処理にも違いがあり、環境に従ってコードを調整する必要があります。

javascriptusestwotypesofcomments:シングルライン(//)およびマルチライン(//)

PythonとJavaScriptの主な違いは、タイプシステムとアプリケーションシナリオです。 1。Pythonは、科学的コンピューティングとデータ分析に適した動的タイプを使用します。 2。JavaScriptは弱いタイプを採用し、フロントエンドとフルスタックの開発で広く使用されています。この2つは、非同期プログラミングとパフォーマンスの最適化に独自の利点があり、選択する際にプロジェクトの要件に従って決定する必要があります。

PythonまたはJavaScriptを選択するかどうかは、プロジェクトの種類によって異なります。1)データサイエンスおよび自動化タスクのPythonを選択します。 2)フロントエンドとフルスタック開発のためにJavaScriptを選択します。 Pythonは、データ処理と自動化における強力なライブラリに好まれていますが、JavaScriptはWebインタラクションとフルスタック開発の利点に不可欠です。

PythonとJavaScriptにはそれぞれ独自の利点があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1. Pythonは、データサイエンスやバックエンド開発に適した簡潔な構文を備えた学習が簡単ですが、実行速度が遅くなっています。 2。JavaScriptはフロントエンド開発のいたるところにあり、強力な非同期プログラミング機能を備えています。 node.jsはフルスタックの開発に適していますが、構文は複雑でエラーが発生しやすい場合があります。

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

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

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール
