0

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

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

1 回答 1

0

我通过跟踪异步调用并循环它们并在页面导航中中止它们来解决此问题。

阿贾克斯调用

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

  });

if (!def.cancelRequest)
            config.requests.push(config.request);

中止功能

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

    config.requests = [];
};
于 2013-11-10T18:08:26.150 回答