2016-04-15 8 views
1

Rappidのパフォーマンスを向上させるための提案はありますか?IEのJointJS/Rappidパフォーマンス問題

IEで実行する必要があります(これはChromeよりも10倍遅く実行されています)。 1000個の正方形と1000個のコネクタを持つグラフをロードすると、215sとなります。私の論文は大きな後押しを提供しています非同期=真、に設定されている

graph.fromJSON(JSON.parse(input)); 

:私は私のコードで空想何も持っていない

、私はJSONファイルからグラフをロードしています。 JSONからの読み込みは、すべてのノードをプログラムで作成するよりもはるかに高速です。

私はここで提案を試してみました: https://groups.google.com/forum/#!topic/jointjs/dbdOrINRG8oしかし、私はFastPaperをIEで動作させることができませんでした。唯一目に見える要素はあなたたくさんを助けることができるレンダリング

+0

Rappidは決して実行可能ではないSVG要素を使用します。多くのノードをレンダリングするには、http://gojs.netのようなHTMLキャンバスベースのライブラリを試してみてください –

答えて

0

が、それは自由のためではありません...

graph.fromJSON(JSON.parse(input));paperはこの変更を検出し、レンダリングを開始し、グラフにすべてのセルをインポートします。この時点では、グラフ内の位置とサイズのすべてのセルと、ビューポート(可視領域)があります。ビューポートに現在ある要素をフィルタリングし、それらの要素だけをレンダリングする必要があります。

  • は、ビューポートを取得:var viewport = paperScroller.getVisibleArea()
  • は、ビューポート内の要素を取得します:graph.findModelsInArea(viewport)

そして、あなたはdia.Paperを拡張し、renderViewメソッドをオーバーライドする必要があります。

joint.dia.PartialRenderPaper = joint.dia.Paper.extend({ 

    isVisible: function(cell) { 
     // detection logic 
    }, 
    renderView: function(cell) { 


     if (this.isVisible(cell) || cell.isLink()) { 

      return joint.dia.Paper.prototype.renderView.apply(this, arguments); 
     } 

     return null; 
    }, 

});