次に、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 :
Yate
Yate — , - . , . 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.