我用Vue创建了一个AJAX搜索域,用于查找产品。
搜索字段模板
<v-text-field id="field" :dark="focus" rounded outlined placeholder="Αναζήτηση..." class="search__field" v-model="text" @focus="handleClick()"
ref="field" :loading="loading">
<template v-slot:append>
<v-icon @click="handleLeave()" dark v-if="focus">
{{ mdiClose }}
</v-icon>
</template>
</v-text-field>
----------------------------------------------------
watch: {
text() {
if(this.text.length >= 3) {
this.getResults();
}
if(this.text.length == 0) {
this.data = []
}
}
}因此,如果用户在搜索字段中键入3个或更多个字母,则会调用getResults函数,并使用axios获取结果/产品。
控制器功能
public function getSearchResults() {
$data = request()->validate([
'search' => 'required'
]);
$query = $data['search'];
$products = Product::where('name', 'like', "%$query%")->with('brand')->with('categories')->get();
return response()->json([
'products' => $products,
]);
}所以我有一个问题,这个方法会不会被垃圾邮件和请求填满服务器?做这类事情最有效的方法是什么?
发布于 2021-12-02 10:08:40
对于任何可能和我有相同问题的人,我从web.php切换到api.php,原因是api.php使用节流,并且在太多请求后抛出429错误。
https://stackoverflow.com/questions/70196782
复制相似问题