 少し前に、ブラウザでデータテンプレートを使用するYandex.Mailに新しいインターフェイスが登場したことを書きました。 これを行う大規模なサービスはほとんどありませんが、今でも、このようなソリューションが最も成功していると考えています。 インターフェイスの操作を加速するだけでなく、ユーザートラフィックを節約し、サーバープロセッサ時間をより効率的に費やすことができます。
 少し前に、ブラウザでデータテンプレートを使用する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 :
 
      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.