1

我有一个页面需要通过 ajax 加载和处理两个大文件。我事先知道我需要下载它们,但是在另一个大型 javascript 文件加载并准备好处理它们之前,我无法启动 ajax 请求。

结果是我最终以串行而不是并行的方式获取大型 javascript 和大型资产,我认为这可能快近一倍。

是否可以让浏览器预加载这些资产?

您可以在下面的屏幕截图中看到必须在甚至开始下载production.min.js之前加载。base-2.91.wszllama-2.91.mp3

在此处输入图像描述

4

1 回答 1

0

听起来jQuery.when()会做的伎俩。直接来自文档:

$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ).done(function( a1, a2 ) {    
  // a1 and a2 are arguments resolved for the page1 and page2 ajax requests, respectively.    
  // Each argument is an array with the following structure: [ data, statusText, jqXHR ]    
  var data = a1[ 0 ] + a2[ 0 ]; // a1[ 0 ] = "Whip", a2[ 0 ] = " It"    
  if ( /Whip It/.test( data ) ) {    
    alert( "We got what we came for!" );    
  }    
});

因此,您将并行执行所有三个调用,并在所有三个调用完成后继续。

于 2016-07-26T17:38:12.030 回答