1

OK、私は素敵なtinymce-solutionを開発しました.jsを介してすべてのtinymce-instancesをプログラムで作成および破棄します.

ここで、具体的なサンプル コードを紹介する前に、私の奇妙な問題について説明します。私の友人は、私が作成したオンライン ツールの極端なパワー ユーザーであり、日中に数百の tinymce インスタンスを作成/破棄しています。 ..

ときどき、何時間も働いた後、「編集」ボタンを押しても tinymce が表示されないという動作をします。自分でそれを再現することはできませんでしたが、ある日、チームビューアーセッションで、エラーがすでに発生しているときに、彼の画面とページを(firebugで)見ることができました。

だから、ひどく私はjavascriptコードを介して完全なデバッグを行うことができませんでした(この状況でf5を1回押すと、エラーが消え、再び取得するのにさらに数時間かかるためです)->私は気づいた、 、エラーが発生したとき-> tinyMCE-object自体のすべてが問題ないように見える-> DOMレンダリングのすべても問題ないように見える->しかし、いくつかの奇妙なcss-import-fileから、突然次のような定義がありました:

html.uvw-dialog-open object, html.uvw-dialog-open iframe, html.uvw-dialog-open embed {
    visibility: hidden;
}

これにより、tinymce のメイン パネルが表示されず、tinymce が何も表示されなくなります。インスタンスを強制終了して再作成しても、現時点ではバグは修正されません。f5 を押す必要があり、リロード後に、この css-definition を再び見つけることができません (または、少なくとも、私は teamviewer と彼のくだらない小さなラップトップを確認できませんでした)

だから、頭に浮かんだ唯一のことは、私自身のcssの醜いハックでした。

html.uvw-dialog-open object, html.uvw-dialog-open iframe, html.uvw-dialog-open embed {
    visibility: visible !important;
}

そして、それ以来... 数週間はかなりでした->しかし、今日、私の友人が再び私に電話して、彼はtinymceを見ることができないと言いました..私はほとんど涙を流していました.

わかりました..これらすべての行を書いて読み直した後->修正が機能しないことに気付きました...両方とも同じ定義であり、同じレベル(インラインではなくファイル)に表示される場合..おそらく最後- match-wins 新しく遅延ロードされた tinymce ファイルはどうなるのでしょう..インラインの tinymce の init_instance_callback について...

しかし、私の必死の中で、私はここにすべてを書き留めようと思いました->おそらく誰かがこの問題の本当の原因を知っています..あなたたちは私が知っている中で最も素晴らしい開発者です:D

4

1 に答える 1

2

ジェビー、

決定的な答えよりも考え...

寿命の長いページで多数の JavaScript/DOM アクティビティが原因で、メモリ リークの問題のように聞こえます。

あなたはおそらく何も悪いことをしておらず、実際の原因を突き止めることはまずありませんが、特定の対策が利用可能です:

  • 毎回新しいインスタンスを破棄して作成するのではなく、tinymce インスタンスを再利用できるようにしてください。
  • 定期的にページに再提供を要求してもらいます。再提供されたページでドキュメント全体の状態 (DOM と JavaScript 環境) を再現するのは難しい場合があります。

たくさんの仕事があり、私が恐れている保証はありません。

于 2012-09-17T19:28:26.970 に答える