-
Notifications
You must be signed in to change notification settings - Fork 310
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
キャラクター選択ボタンを押した時に一瞬重くなる問題を解決したい #1627
Comments
@tunamaguro コメントありがとうございます! 実装わからないのでもしかしたら違うかもなのですが、たぶんまさしくな気がしました!!! |
1つ目のキャラ選択ボタンの初回クリックは、おそらく遅いままだという予想です。私がVueに詳しくないのと、このコンポーネントの実装をしっかり読んでいないので分かりませんが、propsとして値をセットする関数を渡されていると思います。その場合キャッシュ効かないはずなので、キャラ選択ボタンごとに初回は遅く、それ以降早くという風になると思います |
実装は家に帰り次第、ドラフトPRとしてお見せします |
完全に忘れていて遅くなってしまいましたが、現状の実装をドラフトPRにしました(#1994) 今の段階で考えないといけない、やらないといけないと思っていることは以下のX個です
|
@tunamaguro すみません大変遅くなりました、ドラフトPRありがとうございます!! 見させていただいたのですが、すみません!!キャッシュを作る形が思ってたのと違ってることに気づきました! 頂いたプルリクエストおそらく同じボタンでキャッシュを持つ形ですよね。 実を見させていただいた感じかなりシンプルに感じました。 |
あと今手元で再検証したところ、そもそも重くないのでは説が自分の中で浮上してきました。 実際に配布されている製品版でキャラクターボタンを押した時に遅いかどうかを一応検証した方がいいかも。 |
不具合の内容
テキスト欄の左側にキャラクターアイコンが表示されていて、それをクリックするとキャラクター一覧が現れると思います。
このUIが実は結構重いので解決したいです。
色々調べた感想ですが、おそらくコンポーネントかDOMが大量生成されているのが原因だと思います。
大量のコンポーネントが作られる理由は、キャラクターリストを表示するquasasrのq-menuがVueのteleportで実装されており、teleportはコンポーネントをキャッシュ?せずに毎回再生成するから・・・だと思っています。
現象・ログ
キャラクター選択ボタンを押すと、PCによっては開くまで結構時間がかかる。
再現手順
キャラクター選択ボタンを押す。
開発環境の場合はelectronのVue拡張機能を使うと凄まじ量のコンポーネントが毎回作られてることがわかる。
期待動作
少なくとも最初の1回以外はサクッと開けること。
その他
解決策としては、なんとかしてteleportでもコンポーネントのキャッシュ?が効くようにするか、はたまたquasarのq-menuに頼らない実装にするかかなと思っています。
Vueにあまり詳しくないですが、前者はどうしようもない気がしています。
後者は気合でコンポーネントを作って、ボタンの下にコンポーネントが開かれるように自作UIを作れば良いような気がしてますが、それはそれでハミ出ないようにするなどの機構が大変かも。
キャラクターが増えれば増えるほど重くなっていくので、おそらく重要度は高いと見込んでおり、優先度を中にしています。
VueやDOMに詳しい方がいらっしゃったら是非解決に挑戦してみて欲しいです・・・。
The text was updated successfully, but these errors were encountered: