js、javascript异步调用和页面转换延迟

js、javascript异步调用和页面转换延迟,javascript,asynchronous,knockout.js,navigation,single-page-application,Javascript,Asynchronous,Knockout.js,Navigation,Single Page Application,我遇到了一个奇怪的问题,我有4个加载异步调用来填充页面的某些部分。我使用散列来执行javascript导航,而不加载页面。一旦我进入执行异步调用的页面并立即尝试导航出该页面,该页面将等待所有调用完成,然后再导航到另一个页面。无论异步调用是否完成,这都应该转到另一个。我正在使用knockout.js填充HTML以包含重定向javascript,我知道它正在被调用,因为我放置了日志语句以确保它们被执行。想法 app.viewModel.members.container().html("<di

我遇到了一个奇怪的问题,我有4个加载异步调用来填充页面的某些部分。我使用散列来执行javascript导航,而不加载页面。一旦我进入执行异步调用的页面并立即尝试导航出该页面,该页面将等待所有调用完成,然后再导航到另一个页面。无论异步调用是否完成,这都应该转到另一个。我正在使用knockout.js填充HTML以包含重定向javascript,我知道它正在被调用,因为我放置了日志语句以确保它们被执行。想法

app.viewModel.members.container().html("<div>" + html + "</div>");
app.viewModel.members.container().html(“+html+”);

我通过跟踪异步调用并循环它们并在页面导航中中止它们,解决了这个问题

Ajax调用

 config.request = $
            .ajax({..............

  });

if (!def.cancelRequest)
            config.requests.push(config.request);
中止功能

 app.abortRequests = function() {
        $(config.requests).each(function(index, item) {
            item.abort();
        });

    config.requests = [];
};

什么没有按预期工作?页面应该毫不延迟地导航,但它不会一直导航,直到其他加载ajax调用在当前页面上完成。因此,我认为您达到了并行请求的最大值。看看这个