如何使用Jquery在后台执行方法?

时间:2014-04-04 07:11:06

标签: javascript jquery asp.net pdf radpdf

我正在使用第三方控件加载pdf,其中Pdf是延迟加载的。在我的场景中,我想在页面加载时加载几页,并希望加载其余的 pages to load at background.

// Load the required pages at the Load.
function PreLoadPdf(startpage, endpage) {
    myApi.addEventListener("rendered", function () {
        for (var i = startpage; i <= endpage ; i++) {
            myApi.getPage(i).loadRendered();
        }
    });
} 

现在上面的代码执行预加载我想要的Pdf,但我也想在后台加载剩余的页面。 How to execute the Jquery Method at the background of the page without freezing the page. ,我也不应该使用,

setTimeout(function () {}

1 个答案:

答案 0 :(得分:1)

有很多方法可以解决这个问题,但我相信最好的解决方案是使用jQuery的promise API。

//Untested code... typed on the fly
//May have minor syntax errors.

var fileList = [
  "http://example.com/file1.pdf",
  "http://example.com/file2.pdf"
];


var promiseArray = [];

// Fill the file promise array
for (var i = 0; i < fileList.length; i++) {
    var promise = $.get(fileList[i]);
    promiseArray.push(promise);
  });
}

$.when.apply($, promiseArray).then(function() {    
  // All have been resolved (or rejected), do your thing    
});