タイトルの通り、値の受け渡しにjsonを使用しているため、echoを使うのは手間がかかりすぎます
最初にシリアル化または json エンコードしてから echo;
echo json_encode($array);一緒に ajax に送信すると、フロントエンドのクリック クエリの応答が遅すぎる理由がわかりません。先
$ jsonresults = Array ();
while($row=mysqli_fetch_array($result)){ $jsonresult=json_encode ($jsonresults);
これは私の php コードです。変換されていますが、クエリをクリックしてから応答するまでに約 2 秒かかります (約 3000 の配列レコード)
質問があります
LZ が $dbc の内容を入力した場合。 MYSQL コマンドラインでは、実行時間はどのくらいですか?
PHP の解析の問題ではない可能性もあります
質問があります
LZ が $dbc の内容を入力する場合。 MYSQL コマンドラインで、実行時間はどれくらいですか?
PHP ではない可能性があります。これは、データの読み取りにかかる時間も原因である可能性があります。最初に echo $jsonresult; を変更しました。コメントを追加してから、それをフロントデスクに表示するために echo "a" に置き換えます。この時点では、以前の読み取り速度は変わりません
3000 個の配列レコードでは、すでに 2 秒が非常に高速です。 3000個の配列レコードをjsonに変換するには時間がかかりませんか?
echo $jsonresult; の代わりに、速度が大幅に速くなりました
問題は、もちろん、echo "a"; だけではフロントエンドでエラーが発生することです
フロントエンドで 3000 * n の HTML オブジェクトをレンダリングするのに時間がかかりませんか? echo "a"; jsonresult; のほうがずっと速くなります
フロントデスクが 3000 をレンダリングするのに時間がかかるのではないでしょうか。 * n html オブジェクトは可能ですか? 渡された結果をフロントデスクで eval する必要があるため、これをコメントに変更しました。改善する方法はありますか? もっと早くしたいのですが
「ウォーターフォール フロー」のように、バッチでロードすることも検討できます
3000 * n 件のデータにはスクロール バーも表示されるため、取得することは不可能です全てを一度に表示
の場合、最初に表示されたものが最初にロードされ、最後に表示されたものが後でロードされます。これは、いわゆる「ウォーターフォール フロー」です
ページ分割しましょう。多すぎるとブラウザがフリーズします。
「ウォーターフォール フロー」のように、バッチでロードすることを検討できます
3000 * n 項目のデータにもスクロール バーが表示されるため、一度にすべてを表示することは不可能です
バッチ読み込みでは問題ありません。どうすればすべてのデータを一度にフロントデスクに送信できますか?アクセス数は膨大ですが、サーバーがまだ死んでいませんか?
皆さんフォローありがとうございます!