2017-12-21 14 views
2

私は卒業プロジェクトにCytoscape.js 2.7.15を使用しています。ノードのラベルを変更するなどの簡単な視覚化を行う必要があります。Cytoscape.js eles.styleすぐに更新が更新されます

subjectNode.style( 'label'、myDesiredLabelToshow);

私のために動作しますが、彼らは、私は、forループでそれを使用していますし、私は私のアルゴリズムがそれらにラベルを付けるためにどのように動作するかを確認するために遅くなったり、デバッグモードでそれをしたいときには、ノードのラベルがすぐに変更されません。私の機能が終了した後に最終的に一緒に変化する(私は機能の範囲を終了するためにヒットを意味する)。

cy.batch();cy.startBatch()を試してみましたが、Timeoutを設定しようとしましたが、何も機能しませんでした。私は機能o.requestAnimationFrame =機能を見てデバッグモードでcytoscape.jsファイルを追跡した後

..デバッガは変更は私のグラフに適用されることをヒットした後、どのように私は手動で私のカスタム関数でそれをトリガーすることができますか?

+0

わかりません。ループにcy.forceRender()を追加し、その行の後にブレークポイントを置くことができますか? –

+0

'cy.forceRender()'も機能しません –

答えて

0

ほとんどすべてのレンダラーは、requestAnimationFrame()を使用してレンダーループを使用します。つまり、非同期であり、ステッピングしている間は結果が表示されません。

答えは、ブレークポイントやステッピングを使用しないことです。これらのメソッドは、すべてが同期して動作すると仮定しているからです。

UIのボタンを使用してアルゴリズムのポイントを「ステップ」するか、またはプロミスチェーンのアニメーションを使用してプログレッションを視覚化します。または、UI自体にデバッグの手がかりを表示せずに、console.log()を使用してください。

関連する問題