我在我的网站上有很多10000+记录,我把分页应用到them.But列表中,而不是清单上有一个地图视图可以将listings.then用户可以在map.For中搜索,我希望客户端的全部数据都是json。
function doInBackground(){
$.get('car/get-map-data',
{
'params':'$params'
'page':page
},
function(data){
if(data)
{
console.log(data);
}
});
}
这是我的api call.And我的控制器api是
public function actionGetMapData($params){
$searchModel=new CarSearch();
$dataProvider=$searchModel->search($params);
$models=$dataProvider->getModels();
$mapData=array();
foreach ($models as $key => $model) {
array_push($mapData, $model->title);
}
return json_encode($mapData);
}
我在搜索中的页码是10
$query = Car::find();
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => [
'pageSize' => 10,
],
]);
我正在迭代上面的javascript函数,逐页获取所有数据到客户端side.But --有时它非常slow.How --我可以克服这一点。我想将数据添加到地图view.hence中,地图视图也变慢了。如何快速地将10000+清单加载到客户端
发布于 2020-04-06 03:28:51
据我所知,每个API调用只检索10个项。如果您有10,000项,这意味着您正在进行1000个API调用来检索所有项。这肯定不是很好的表现。您可以尝试一次加载所有10,000项,然后只在客户端执行分页操作。
也就是说,从API中检索10,000+项可能不是“快速”的。这将取决于API检索这些项的速度以及每个项的外观。如果它们是简单的对象,这是可以工作的,但是如果它们是具有许多属性的对象,那么响应的大小可能会成为瓶颈。
在这种情况下,您需要在API上执行搜索,以便它尽可能快。
https://stackoverflow.com/questions/61043683
复制