Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用户触发ajax调用时的性能_Javascript_Jquery_Ajax_Knockout.js - Fatal编程技术网

Javascript 用户触发ajax调用时的性能

Javascript 用户触发ajax调用时的性能,javascript,jquery,ajax,knockout.js,Javascript,Jquery,Ajax,Knockout.js,在我的SPA网络应用程序中,我有一个树状系统,用户可以使用箭头按钮上下导航。每次加载新页面时,都会触发ajax调用$.getJSON,获取该页面的内容 加载:函数{ this.guidArray.forEachfunction currentGuid{ $.getJSON/report/getdata,{guid:currentGuid},函数数据{ var报告={title:data.name,fuid:currentGuid}; this.reports.pushreport; }.这个

在我的SPA网络应用程序中,我有一个树状系统,用户可以使用箭头按钮上下导航。每次加载新页面时,都会触发ajax调用$.getJSON,获取该页面的内容

加载:函数{ this.guidArray.forEachfunction currentGuid{ $.getJSON/report/getdata,{guid:currentGuid},函数数据{ var报告={title:data.name,fuid:currentGuid}; this.reports.pushreport; }.这个 .successfunction{this.numberOfLoadedReports this.numberOfLoadedReports+1;}.bindthis; }.这一点;
} 您可以尝试添加全局变量,并在success函数中将其设置为TRUE,在$.getJSON…之后的ajax请求之后,以及在调用加载函数之前,检查该变量是否为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));
        }}

你已经提到了。有哪些方法或模式可以取消或取消请求,这是唯一的选择。一旦请求开始,您所能做的就是中止它。如果您想知道如何中止它,可以在文档中找到。您可以尝试在success函数中添加全局变量并将其设置为TRUE,在$getJSON…之后的ajax请求之后将其设置为FALSE,在调用your load函数之前检查此变量是否为TRUE或FALSE,您可以限制/延迟请求。