我们有一个允许用户通过Ajax请求加载数据的应用程序。比如,我们有一个名为'track'的项目列表。每当用户单击一个轨道时,我们就会发出Ajax请求,获取数据并显示。每个轨道都包装为JQuery小部件。发出请求和处理结果的代码是:
function _fullRefresh() {
// Prepare parameters ...
return $.Deferred(function(def) {
$.getJSON(url, params, function(data) {
callFunctionRunforLongTime(data);
// update some local variables.
def.resolve();
}).error(function() {
def.reject();
});
}).promise();
}
......
loadingIcon.show();
this._fullRefresh(forced)
.always(function() {
loadingIcon.hide();
}).fail(function() {
showError();
});
当我们有多个打开的曲目时会出现问题。有时用户点击“放大”按钮,然后每个打开的曲目都会发送新请求并更新数据。现在有线事情发生了:有时promise
对象是rejected
(因此显示错误消息),但是从后端服务器端,HTTP响应代码是200
,这意味着后端发送数据没有错误。
当用户点击太快时,并不总是会发生错误。当用户单击按钮一次时可能会发生这种情况。
同时,更新本地窗口小部件变量的代码有时会失败。在我的实现中,更新本地窗口小部件变量的代码大约是10行。
是什么原因?请帮助,谢谢。
解决。
感谢@charlietfl和@ Beetroot-Beetroot。我发现问题不是由javascript引起的。这是因为对MySQL的同时查询使连接失败。
答案 0 :(得分:0)
感谢@charlietfl和@ Beetroot-Beetroot。我发现问题不是由javascript引起的。这是因为对MySQL的同时查询使连接失败。