現在、トーナメントプラットフォームで作業しています。このプラットフォームは完全に動的なランキングを生成するので、我々は異なるポイント、参加者の異なる量などを毎回持っています。PHPはランキングのためにループを高速化します
トーナメントは複数のラウンドを持つことができます。各ラウンドについて、管理者は参加者のランキングを設定できます。そして、これが問題のあるところです。私の現在のコード:
私の最後のケースでは、私は67人の参加者があった:
<select name="round_{{ $i }}_placements[{{ $participant->id }}]" class="form-control scoreboard-placement">
@for($x=0;$x<$tournament->checkedin()->count()+1;$x++)
<option value="{{ $x }}" @if($participant->getRanking($i)->ranking_value == $x) selected="selected" @endif>{{ $x }}</option>
@endfor
</select>
しかし、私は今、読み込み時間を持つ巨大な問題を持っています。参加者ごとに、67の選択オプションをすべて追加しました。しかし、それはまた明らかに起こらないべきランキングの67倍をチェックした。これにより、バックエンドのローディング時間が約30秒に増加します。これは巨大です。私がそれらを削除したら、それは2に戻りました。
それで、私が代わりにしたいのは、すべてのオプションを一度作成し、自動的に選択したボックスを変更することです。あなたは私がこれを達成する方法を知っていますか?変更するためにJSに切り替えることも問題ありません。
あなたはxdebugのをインストールし、アプリケーションのプロファイリングを試みることができます。時間が費やされた場所を見てください。それがスピードを上げるのに役立ちます。 –
私は速度を改善する必要がある場所を確認しましたが、これはこの特定の部分です。私は、67だけ必要としながら、私はそれらのランキングのために何千ものリクエスト(67x67)を要求するという問題があります。 – Astinox
これは根本的な質問なので、私は答えをロールバックしました。答えは理にかなっていないので、答えに合わせてそれを書き留めるべきではありません。この方法で、誰かが前/後を見ることができ、それから学ぶ – Martijn