【发布时间】:2016-03-01 10:58:09
【问题描述】:
所以我有一个 Web 应用程序,它对某些 API 进行大约 14-15 次 AJAX 调用。问题是所有 AJAX 调用所花费的时间几乎是我在浏览器中键入其 URL 时每个单独的 API 向我显示响应的时间的 3 倍。
我在 DOM Ready 事件中立即进行所有 AJAX 调用。
问题是我怎样才能加快这个过程,将 15 个 AJAX 调用放在一起,尽可能快地获得响应并相应地操作 DOM。
我想到的几点:
- 所有 AJAX 调用本质上都应该是 ASYNC。 (已经在做)。
- 不要同时进行所有 AJAX 调用。引发某种超时,因为同时进行所有 AJAX 调用可能会阻塞带宽并减慢进程的周转时间。
- 以任何方式减少 API 调用的数量。 (已经在做)。
- 尽可能少地操作 DOM。 (已经在做)。
- 在 AJAX 设置中设置
cache:true。我认为这不会真正有帮助,但我仍然会在我确信内容更新非常缓慢的地方这样做。
任何建议都会很有价值!谢谢。
我进行 AJAX 调用的方式
$(document).ready(function(){
loadSentimentModule();
loadCountModule();
loadEntitiesModule();
// Some more function calls.
});
function loadSentimentModule(){
$.ajax({
url:someurl,
cache:true,
dataType:"json",
success: function(data){
// Based on data manipulating DOM.
}
}
// Same kind of function defintions for all the functions.
【问题讨论】:
-
展示你处理多个 Ajax 请求的方式..
-
@user1354678 已输入。请检查
-
Reducing the number of API calls by any means当然,这就是您应该开始的地方。如果您只需发出一个 ajax 请求就可以处理所有数据,那么您就是赢家 :) -
如果您可以控制 API 服务器,您可以将所有这些调用重新组合成一两个调用。
-
你有服务器在运行吗?您可以使用相同的想法。您的客户端向您的服务器发出一个请求(带有一组 api_to_call/params?),您的服务器将执行所有 API 调用并返回一个巨大的数据数组。它对客户来说更轻,您将获得一致的性能和响应时间
标签: javascript jquery ajax