私はLaravelに組み込まれたアプリケーションを持っており、ホームページ(home.blade.php)で検索するとDBに照会し、結果ページ(results.blade.php)に結果を返します。今ではアプリケーションがいくつかの時間のために使用されている10から15キロ複雑なレコードがいくつかのフィールドで検索されている。できるだけ早く検索するためにElastic検索を使用していますが、それでも10秒ほどかかります。Laravelリクエストのプリローダー
プリローダーを表示したいと思います。通常、私はこの使用してAJAXを行うだろう、または(ウィンドウ).LOADが完了し、このようなものであるとき、JSは、解雇:
var progress = setInterval(function() {
var $bar = $("#bar");
if ($bar.width() >= 600) {
clearInterval(progress);
} else {
$bar.width($bar.width() + 60);
}
$bar.text($bar.width()/6 + "%");
if ($bar.width()/6 == 100){
$bar.text("Still working ... " + $bar.width()/6 + "%");
}
}, 800);
$(window).load(function() {
$("#bar").width(600);
$(".loader").fadeOut(3000);
});
しかしLaravelは前回(検索)ページに残っているので、プリローダーが表示されない場合は、 DBを照会する過程で、まだ結果ページをロードしていません。
私のLaravelコントローラーにajaxコールを発信し、プリローダーを表示する簡単な解決策がありますか?理想的には、Laravel/Eloquentによって検索されたレコードの数を追跡する方法です。
UPDATE:
私はそれがこのような何かを見たいのですがそれは私に発生し
私はAPI呼び出しとして結果を返すことによってこの問題を解決する可能性を
function resultsCall() {
$.ajax({
type: "POST",
url: './myapiroute',
data: "",
success: function() {
console.log("Loaded!");
}
})
};
しかし、私は、API呼び出しに付属する特別なセキュリティを避けたいと思います - トークン/ヘッダーなどを渡す...私はLaravel/phpベースのソリューションを探しています。
_ "10-15Kの結果が表示されています" _これは、修正する必要がある問題ではないと思いますか?ユーザーは一度に表示される数千の検索結果を拾い読みしたくないので、検索結果のページネーションを実装する方が合理的かもしれません。 – CBroe
結果は改ページされます。私はプリローダーが必要です。私は私の質問をより明確に更新しました。 – Leon