【问题标题】:Priority in AJAX callsAJAX 调用中的优先级
【发布时间】:2015-02-25 15:28:11
【问题描述】:

我要解决的问题:

我有两个 ajax 函数数组。

var topPriorityAjaxCalls = [ajaxCall1, ajaxCall2, ajaxCall3];

var minorPriorityAjaxCalls = [ajaxCall4, ajaxCall5, ajaxCall6, ... , ajaxCall10];

第一组 ajax 调用(topPriorityAjaxCalls) 具有 TOP 优先级,因为这些调用获得的信息在用户加载页面时就需要它。

第二组 ajax 调用(minorPriorityAjaxCalls) 也将获得我想显示给用户的信息,但是当用户加载页面时该信息被隐藏(手风琴关闭)。

为了优先处理我的第一组AJAX调用,先启动它们就够了吗?所有浏览器都会尊重我调用这些函数的顺序吗?

注意:我知道来自服务器的响应是异步的,因为 AJAX 中的 A 代表它。

【问题讨论】:

标签: javascript jquery ajax


【解决方案1】:

是的,所有浏览器都会按照您的代码发起请求的顺序发起请求。

这并不意味着网络会优先处理它们,或者它们会比稍后发起的请求更快地完成,但这是你能做的最多的事情。

【讨论】:

  • 感谢@meager!很高兴再次见到你:D 在我结束之前还有一件事,如果我真的需要完成 topPriorityCalls[],你有什么建议吗?首先。
  • @cacho 使用$.when.apply($, topPriorityAjaxCalls) 来同步任何取决于首先完成的内容。您可能希望将低优先级调用推迟到那时才开始,这样它们就不会使忙于为最高优先级调用提供服务的服务器超载。
  • 但没有什么真正取决于前 3 个调用,我只想先完成它们,以便用户快速看到所有这些信息。
  • @cacho 然后先启动它们。看,你不断说的话毫无意义。如果您想先完成它们,那么先完成它们。使用$.when。仅仅使用$.when 并不意味着后面的调用依赖于早期的调用,因为每次有人建议$.when 时,您都会不断回复。低优先级调用是否依赖于高优先级调用无关紧要,$.when 仍然是先排序一组的正确方法。否则,只要确保它们被尽早调用并且服务器快速响应它们。
猜你喜欢
  • 2021-08-10
  • 2023-04-05
  • 2012-02-22
  • 2014-07-04
  • 2011-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-22
相关资源
最近更新 更多