在我的角度App中。我有大约6到7个http链接请求,执行所有请求需要很长时间。如何优化这个?
empSvc.getallEmp().then(function (data) {
if (data !== null && data.length > 0) {
repos.saveEmp(data).then(function () {
repos.getemp().then(function (result) {
ctrl.emp= result;
getsubordinates().then(function () {
deleteinactive(data).then(function () {
deleteinactiveSubordinate(ctrl.emp).then(function () {
console.log(success);
});
});
});
});
});
答案 0 :(得分:0)
它与角度本身无关。如果您的http调用很慢,那么由于您的网络连接速度,有效负载大小和后端服务器处理能力,它们很慢。
如果编写后端api函数和路由由您决定,那么您可以编写一个自定义api路由,将所有这些6-7请求合并为一个,并立即分发所有必需的数据。
例如,如果你有类似的东西。 1)下载产品类别 2)下载类别产品 3)下载产品详细信息 4)下载产品评论 5)下载产品评级。
您可以编写一个快捷方式路由,在一个结果集中返回所有这些信息。
e.g /products/{category}/all
and returns data:
{
category: "Shoes",
id: 2,
related_categories: [1,3]
products: [{
id: 100,
brand: "some random brand",
color: "red",
comments: ["awesome shoes"]
ratings: [1,2,3]
}]
}
将请求合并为一个可以显着提高速度并减少开销。
如果您的查询不依赖于先前查询的数据,那么您可以尝试一次性并行执行它们。无需任何更多信息,无法提供帮助。
根据您帖子的更新进行快速更新。 如果不更详细地了解这些功能的作用,我只想猜测一下:
看起来角度应用尝试删除某处的非活动用户。 这首先是你需要在前端做些什么吗?
我确定后端服务器可以使用cron作业自动删除非活动用户。
您正在下载"数据"到你的前端 - 只发送回服务器不变? 至少似乎是这样。
详细说明这些功能的作用。他们提交请求的地方