在我的SPA网络应用程序中,我有一个树状系统,用户可以使用箭头按钮上下导航。每次加载新页面时,都会触发ajax调用($ .getJSON),获取该页面的内容。
load: function () {
this.guidArray().forEach(function (currentGuid) {
$.getJSON("/report/getdata", { guid: currentGuid }, function (data) {
var report = { title: data.name, fuid: currentGuid };
this.reports.push(report);
}.bind(this))
.success(function () { this.numberOfLoadedReports(this.numberOfLoadedReports() + 1); }.bind(this));
}.bind(this));
}

如果用户在页面之间快速导航,则会对性能产生影响,因为其间的所有ajax调用也会被触发。取消或以其他方式管理哪些方法或模式,以便只进行必要的呼叫?
答案 0 :(得分:0)
您可以尝试添加全局变量,并在ajax请求之后(TRUE
之后)将其设置为成功函数中的TRUE
(默认值为FALSE
)和$.getJSON
。 。),在调用你的加载函数之前,检查这个变量TRUE
或FALSE
所以,像
var requestIsPossible = TRUE;
if(requestIsPossible){
load: function () {
this.guidArray().forEach(function (currentGuid) {
requestIsPossible = FALSE;
$.getJSON("/report/getdata", { guid: currentGuid }, function (data) {
var report = { title: data.name, fuid: currentGuid };
this.reports.push(report);
}.bind(this))
.success(function () {
requestIsPossible = TRUE;
this.numberOfLoadedReports(this.numberOfLoadedReports() + 1); }.bind(this));
}.bind(this));
}}