这是描述该问题的两种实现方式。
第一个是工作非常缓慢的方法。它尝试从服务器获取数据,但请求pending
太长,然后才返回数据并且一切都很好(除了可怕的同步性能)。
asyncMethod: function(doSmth, param) {
var resp = $.ajax({
type: 'GET',
async: false,
url: 'url'
});
data = resp.responseText;
doSmth(param, data);
}
这是相同的方法,但它是异步的。性能问题在这里被消除了。但它只有在重新加载页面时才能成功执行该部分。可能重新加载会停止一些执行,这些执行是先前代码示例的瓶颈。
asyncMethod: function(doSmth, param) {
var resp = $.ajax({
type: 'GET',
url: 'url',
success: function () {
data = resp.responseText;
doSmth(param, data);
}
});
}
我不需要使用异步请求,如果同步请求工作得很快(但现在没有了)。似乎有一些处决,使请求保持等待太久。我没有看到可能成为瓶颈的执行。也许它在使用的库中的某个地方,但resp
在处理时没有其他请求处于活动状态。
解决问题或分析问题的方法是什么?建议将不胜感激。