ホームページ  >  記事  >  バックエンド開発  >  PHPはエコーなしで値をJSに渡すことができますか?

PHPはエコーなしで値をJSに渡すことができますか?

WBOY
WBOYオリジナル
2016-06-23 14:10:531121ブラウズ

タイトルの通り、値の受け渡しにjsonを使用しているため、echoを使うのは手間がかかりすぎます


ディスカッションへの返信(解決策)

どうしてだと思いますか? echo を使用するのは時間がかかりすぎるため、print を使用する必要があります

最初にシリアル化または json エンコードしてから echo;


echo json_encode($array);一緒に ajax に送信すると、フロントエンドのクリック クエリの応答が遅すぎる理由がわかりません。先

をシリアル化するか、json コーディングしてから、echo を実行します。 ;

$ 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に変換するには時間がかかりませんか?

3000 配列レコード、2 秒はすでに非常に高速です。 3000個の配列レコードをjsonに変換するには時間がかかりませんか? もっと良い方法があるはずです。誰かがやったのを見たところ、10,000 個以上の配列の結果が一瞬で出てきました

echo $jsonresult; の代わりに、速度が大幅に速くなりました
問題は、もちろん、echo "a"; だけではフロントエンドでエラーが発生することです
フロントエンドで 3000 * n の HTML オブジェクトをレンダリングするのに時間がかかりませんか? echo "a"; jsonresult; のほうがずっと速くなります

そうすると、もちろん、フロントデスクがエラーを起こすのは、echo "a" だけであるということになります


フロントデスクが 3000 をレンダリングするのに時間がかかるのではないでしょうか。 * n html オブジェクトは可能ですか? 渡された結果をフロントデスクで eval する必要があるため、これをコメントに変更しました。改善する方法はありますか? もっと早くしたいのですが

一度に 3000 件のレコードをチェックする必要がありますか?必要がない場合は、ユーザーの行動に基づいてバッチで取得することもできます

「ウォーターフォール フロー」のように、バッチでロードすることも検討できます

3000 * n 件のデータにはスクロール バーも表示されるため、取得することは不可能です全てを一度に表示

の場合、最初に表示されたものが最初にロードされ、最後に表示されたものが後でロードされます。これは、いわゆる「ウォーターフォール フロー」です


ページ分割しましょう。多すぎるとブラウザがフリーズします。

「ウォーターフォール フロー」のように、バッチでロードすることを検討できます
3000 * n 項目のデータにもスクロール バーが表示されるため、一度にすべてを表示することは不可能です

最初に表示されるものが最初にロードされ、その後ロードされます見た後に読み込む、いわゆる「ウォーターフォールフロー」です。クエリをクリックするたびに1つのレコードが表示され、ページを更新する必要はありません。この時点では、レコードの切り替えは非常に高速であり、時間は無視できます。ただし、最初のクエリをクリックした後、しばらく待つ必要があります。この状況にはバッチ読み込みが適しています。


バッチ読み込みでは問題ありません。どうすればすべてのデータを一度にフロントデスクに送信できますか?アクセス数は膨大ですが、サーバーがまだ死んでいませんか?

皆さんフォローありがとうございます!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。