
少し前に、ブラウザでデータテンプレートを使用するYandex.Mailに新しいインターフェイスが登場したことを
書きました。 これを行う大規模なサービスはほとんどありませんが、今でも、このようなソリューションが最も成功していると考えています。 インターフェイスの操作を加速するだけでなく、ユーザートラフィックを節約し、サーバープロセッサ時間をより効率的に費やすことができます。
次に、XSLをテンプレートエンジンとして使用し、データをXML形式で送信しました。 プロジェクトを新しいインターフェイスに移行した後、Yandex.Mailインターフェイスを高速化する他の方法を探し始めました。
最近、すべてのメールをJSテンプレートエンジンとJSONデータに転送しました。
XML / XSLを放棄する理由私たちはXSLが大好きです。表現力があり、複雑な接続、多数の再利用可能なブロック、およびブロックを再定義または再定義する機能を備えた大規模サービス用のテンプレートを書くのは本当に便利です。 しかし、彼にはいくつかの重大な欠点もあります。
- 開発していない
ブラウザのバグを見ると、開発者がXSLについて言及した最後の言及は2004年に遡ります(下のグラフのChromeの問題は特に明白です)。
-, , , IE IE. , , , xsl:call-template
, — . xsl:output
.
.
XSL- — , , , , , .- C
xslt , exslt, , - . - XML-
, E4X – , spidermonkey. E4X JSON.
( , ) , :
yate,
handlebars,
jade,
dust ajaxslt.
json- , .
(, , , , , ), /. .
, (handlebars, jade, dust) , «», . XSL , .
, yate ajaxslt. , , ajaxslt yate 500 .
200 :
YateYate — , - . , . Yate XSL: js- (match, apply), , jpath — XPath JSON. javascript , .
XSL yate:

, , yate — , JavaScript XSL-. , , JS , .
yate, 40% , . … 1200%!
, .
– JS-, , :

, , .
, , , , , :

, – 200. 30 , :

— - ,
debugger
, .
log
, , .
, . yate . , , , , HTML.

yate , , . , JavaScript :

. .
, , JSON, E4X XML2JSON. , , XSL/XML, . . , «» :

:

, , .
DIY, yate . yate ,
npm install yate
.
jpath. XPath JSON (
jpath no.path)
vim Sublime Text. XSL-, , yate
xsl2yate.