私はプロジェクトを「読み込み中...」というパーセンテージインジケータで設定して終了しようとしています。簡単に。問題は、のコード行数が6,000を少し上回っていて、何か2,000行以上の新しいノードをDOM
に注入しているということです。だから実際の問題は、メッセージのロード時に%インジケータを変更しようとしているときに来ますが、ブラウザはただちにRaphael
がすべてのノードの作成を完了するまでフリーズしています。大規模なSVGレンダリング中のDOM操作
私が試したと私は知っている:
1)私はcount
VARを高め、すべての私の6000のコード上でこの機能を広げることにより、荷重の%を計算するための非常にシンプルな機能を持っています。私は実際のロードプロセスをシミュレートします。新しいものはありません。
2)私はこの機能が魔法として機能することを知っています。ローディングプロセスを通じて、私は実際に0から100%のヒーローになっています。
3)この機能の中で、私は新しい価値を得るたびに画面上の%を更新しようとしていますが、瞬時に100%になると全ページの読み込みまで何も起こりません。
4)インジケータを更新できる唯一の方法は、更新するたびにalert()
に設定することです。これは、アラートポップアップが画面に表示されたときに私のインジケータを変更する魔法のダストです。
5)私はsetTimeout
を試してみましたが、ダミーループなどを実行し、子ノードを作成し、position
を変更し、visibility
をトグルのような多くの他、きた...何も助けない... SVG
レンダリング中に - すべてがちょうど氷点下の凍結です。
6)私の小さなCSSアニメーション(暗いセクターの回転円)(もちろん、FFを除く - そこにはCSSアニメーションもありません)です。
7)私はalert()
の動作を自分でシミュレートできないことを他の情報源から理解しています。
8)私は、これは私が完璧な条件の下で取得したいものだと思い、私は...
を/ DOM注入問題をレンダリングしている、私はdefer
とasync
を試してみたが、私はロードの問題を持っていません:
1)私は知りたいです - どのようにすべてのSVNノードの注入/操作を決定するのですか?
2)その後、レンダリング/注入プロセス全体を停止し、callback
まで私自身で何かするのですか?
3)次に、どのように)))?
4を再開します)それとも私が見逃している何か...
一度に2000ノードを注入しないでください。 100を注入し、計器を更新してから、もう一度100回注入する。 – dandavis
私はそれを試しました...問題は - パーサーは計量器を更新するのを止めず、次の注入線すべてを読み始めるだけです... –
実際の作業に役立つように作業やフィドルを貼り付けてください – MarmiK