ホームページ ウェブフロントエンド jsチュートリアル ejs v9 javascript テンプレート system_javascript スキル

ejs v9 javascript テンプレート system_javascript スキル

May 16, 2016 pm 05:55 PM
テンプレート

このバージョンでは、表示とデバッグを容易にするために、バックエンド データには引き続き @frontend が含まれています。昨日、TXのフロントエンドエンジニアともこの必要性について話し合いました。テンプレートに入力する必要がある変数を取得し、バックエンドから渡された JSON と比較して、できるだけ早くデータを検証します。この手法については、$ がプレフィックスとして付いている PHP の変数の名前を確認できます。
以前のバージョンでは、出力ステートメントにセミコロンまたはカンマが含まれている場合、エラーが報告されていました。

コードをコピー コードは次のとおりです:




内部的に生成される文字列は次のようになります:
__views(data.tr.name;)
ユーザーが誤ってアクセスできないようにするためカンマまたはセミコロンを追加すると、このバージョンでは自動的に処理されます。




コードをコピーします
コードは次のとおりです。 rlastSemi = /[,;]s*$/ // 少し case "="://バックグラウンドで返された変数を処理します (ページに出力します)。
ロジック = els[0].substring(1);
if(logic.indexOf("@")!==-1){
temp.push( startOfHTML,logic.replace(rAt,"$1 data) .").replace(rlastSemi,''), endOfHTML );
}else{
temp.push(startOfHTML,logic.replace(rlastSemi,''), endOfHTML );
}
Break;


Example
以下は、ブラウザーが JS コードの解析を無視するスクリプト タグ内に配置されたテンプレートです。trs と href の前に @ 識別子が付いていることに注意してください。



コードをコピー
{name:"Invisible Killer",年齢:29,性別: "男性"},
{名前:"そら"、年齢:22、性別:"男性"}、
{名前:"フェショ"、年齢:23、性別:"女性"}、
});
$("#table_tc").html(html)
});





ejs ソース コード




コードをコピー


コードは次のとおりです:

$.define("ejs", "lang",function(){
var
_startOfHTML = "t__views.push(",
_endOfHTML = ");n",
sRight = "&>"、
rLeft = /s*<&s*/、
rRight = /s*>s*/、
rAt = /(^|[^wu00c0- uFFFF_])(@)(?=w)/g,
rLastSemi = /[,;]s*$/
var ejs2 = $.ejs = function(id,data){
data = data ||.startOfHTML = _startOfHTML,
endOfHTML = _endOfHTML,
el = document.
if (!el) throw "ターゲット要素が見つかりません"
str = el.innerHTML;
var arr = str.trim().split(rleft),
buff = ["var __views = [];n"],temp = [],i = 0, n = arr .length,els,segment; 🎜>if( ~segment.indexOf(sright) ){//ここでは els.length === 2 を使用せず、IE の分割バグを回避します
switch ( els[ 0].charAt(0) ) {
case "="://处理后台返還的变量(页面に出た);
ロジック = els[0].substring(1);
if(logic.indexOf("@")!==-1){
temp.push(startOfHTML,logic.replace(rAt,"$1data.").replace(rlastSemi,''), HTML の終わり );
}else{
temp.push( startOfHTML,logic.replace(rlastSemi,''), endOfHTML );
}
休憩;
case "#"://处理注释
break;
default://处理逻辑
logic = els[0];
if(logic.indexOf("@")!==-1){
temp.push(logic.replace(rAt,"$1data."), "n" );
}else{
temp.push(logic, "n" );
}
}
//处理静态HTML片断
els[1] && temp.push(startOfHTML, $.quote( els[1] ), endOfHTML)
}else{
//处理静态HTML片断
temp.push(startOfHTML, $.quote( els[0] ), endOfHTML );
}
}
ejs2[id] = new Function("data",buff.concat(temp).join("") ';return __views.join("");');
return ejs2[id]( data )
}
return ejs2[id]( data )
}
})
// ejs v9!

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHP 電子メール テンプレート: 電子メールのコンテンツをカスタマイズしてパーソナライズします。 PHP 電子メール テンプレート: 電子メールのコンテンツをカスタマイズしてパーソナライズします。 Sep 19, 2023 pm 01:21 PM

PHP 電子メール テンプレート: 電子メール コンテンツのカスタマイズとパーソナライズ 電子メールの人気と広範な使用に伴い、従来の電子メール テンプレートでは、パーソナライズおよびカスタマイズされた電子メール コンテンツに対するユーザーのニーズを満たすことができなくなりました。 PHP プログラミング言語を使用して、カスタマイズおよびパーソナライズされた電子メール テンプレートを作成できるようになりました。この記事では、PHP を使用してこの目標を達成する方法を説明し、いくつかの具体的なコード例を示します。 1. 電子メール テンプレートを作成する まず、基本的な電子メール テンプレートを作成する必要があります。このテンプレートは HTM にすることができます

PPTマスクを追加する方法 PPTマスクを追加する方法 Mar 20, 2024 pm 12:28 PM

PPTのマスキングについては、馴染みのない方も多いと思いますが、PPTを作成する際によく理解せず、自分の好きなものを作るために適当に作っている人が多いため、PPTのマスキングの意味が分からない、理解できないという人も多いと思います。 「このマスクが何をするのか知っています。そして、それが写真の単調さを軽減できることさえ知りません。学びたい友達は、来て学び、あなたの PPT 画像に PPT マスクを追加してください。単調さを減らしてください。」では、PPT マスクを追加するにはどうすればよいでしょうか?以下をお読みください。 1. まず、PPT を開き、空白の画像を選択し、次に [背景形式の設定] を右クリックして単色を選択します。 2. [挿入]をクリックし、ワードアートをクリックし、単語を入力します。 3. [挿入]をクリックし、[図形]をクリックします。

C++ テンプレートの特殊化が関数のオーバーロードとオーバーライドに及ぼす影響 C++ テンプレートの特殊化が関数のオーバーロードとオーバーライドに及ぼす影響 Apr 20, 2024 am 09:09 AM

C++ テンプレートの特殊化は、関数のオーバーロードと書き換えに影響します。 関数のオーバーロード: 特殊化されたバージョンでは、特定の型のさまざまな実装が提供されるため、コンパイラーが呼び出すことを選択する関数に影響します。関数のオーバーライド: 派生クラスの特殊バージョンは、基本クラスのテンプレート関数をオーバーライドし、関数呼び出し時の派生クラス オブジェクトの動作に影響を与えます。

C++ でのテンプレート メタプログラミング FAQ 面接での質問 C++ でのテンプレート メタプログラミング FAQ 面接での質問 Aug 22, 2023 pm 03:33 PM

C++ はさまざまな分野で広く使用されているプログラミング言語であり、そのテンプレート メタプログラミングは、プログラマがコンパイル時に型と値を変換できる高度なプログラミング手法です。テンプレートのメタプログラミングは C++ で広く議論されているトピックであるため、面接ではこれに関連した質問がよく聞かれます。ここでは、C++ で尋ねられる可能性のある、テンプレート メタプログラミングの面接でよく聞かれる質問をいくつか示します。テンプレートメタプログラミングとは何ですか?テンプレート メタプログラミングは、コンパイル時に型と値を操作するための手法です。テンプレートとメタ関数を使用して、型と値に基づいて生成します

Vue で画像テンプレートとマスク処理を実装するにはどうすればよいですか? Vue で画像テンプレートとマスク処理を実装するにはどうすればよいですか? Aug 17, 2023 am 08:49 AM

Vue で画像テンプレートとマスク処理を実装するにはどうすればよいですか? Vue では、テンプレート効果やマスクの追加など、画像に対して特別な処理を実行する必要があることがよくあります。この記事では、Vue を使用してこれら 2 つの画像処理効果を実現する方法を紹介します。 1. 画像テンプレートの処理 Vue を使用して画像を処理する場合、CSS のフィルター属性を使用してテンプレート効果を実現できます。フィルター属性は要素にグラフィック効果を追加し、明るさフィルターは画像の明るさを変更できます。私たちは変えることができます

Flask-Bootstrap: Flask アプリケーションにテンプレートを追加する Flask-Bootstrap: Flask アプリケーションにテンプレートを追加する Jun 17, 2023 pm 01:38 PM

Flask-Bootstrap: Flask アプリケーションへのテンプレートの追加 Flask は、Web アプリケーションを構築するためのシンプルかつ柔軟な方法を提供する軽量の Python Web フレームワークです。これは非常に人気のあるフレームワークですが、デフォルトのテンプレートの機能は限られています。魅力的なユーザー インターフェイスを作成するには、追加のフレームワークまたはライブラリを使用します。ここで Flask-Bootstrap が登場します。 Flask-Bootstrap は Twitter ベースの

OneNote でテンプレートを使用して生産性を向上させる方法 OneNote でテンプレートを使用して生産性を向上させる方法 Apr 30, 2023 am 11:31 AM

テンプレートを使用すると、メモを取る作業が速くなり、重要なアイデアをより効果的に捉えることができることをご存知ですか? OneNote には、使用できる既製のテンプレートのセットが用意されています。最も良い点は、ニーズに応じてテンプレートをデザインすることもできることです。学生でも、企業戦士でも、クリエイティブな仕事をしているフリーランサーでも。 OneNote テンプレートを使用すると、自分のスタイルに合った構造と形式で重要なメモを記録できます。テンプレートは、メモを取るプロセスの概要にすることができます。アマチュアはただメモを取るだけですが、プロはメモを取り、テンプレートを使用して適切に構造化されたメモを通じてそこからつながりを引き出します。 OneNote でテンプレートを使用する方法を見てみましょう。既定の OneNote テンプレートを使用する ステップ 1: キーボードの Windows + R を押します。オノタイプ

C++ テンプレートとジェネリックの比較? C++ テンプレートとジェネリックの比較? Jun 04, 2024 pm 04:24 PM

C++ におけるテンプレートとジェネリックの違い: テンプレート: コンパイル時に定義され、明確に型指定され、効率が高く、コード サイズが小さい。ジェネリック: 実行時の型指定、抽象インターフェイス、柔軟性を提供しますが、効率は低くなります。

See all articles