发出Ajax请求以加载数据时,是否可以在Rally Grid(扩展JS)中显示“正在加载数据..”选项?

每当将数据加载到网格中时,我都试图将消息设置为“ Data Loading ..”。如果我不拨打Ajax电话,那就很好。但是,当我尝试发出Ajax请求时,需要花费一些时间来加载数据,却没有显示“正在加载数据..”消息。有人可以帮我解决这个问题。.预先感谢。

_loadData: function(x){
                var that = this;
                if(this.project!=undefined) {
                    this.setLoading("Loading data..");
                    this.projectObjectID = this.project.value.split("/project/");
                    var that = this;
                    this._ajaxCall().then( function(content) {
                        console.log("assigned then:",content,this.pendingProjects,content.data);
                        that._createGrid(content);
                    })
                }
            },_ajaxCall: function(){
                var deferred = Ext.create('Deft.Deferred');
                console.log("the project object ID is:",this.projectObjectID[1]);
                var that = this;
                console.log("User Reference:",that.userref,this.curLen);
                var userObjID = that.userref.split("/user/");
                Ext.Ajax.request({
                    url: 'https://rally1.rallydev.com/slm/webservice/v2.0/project/'+this.projectObjectID[1]+'/projectusers?fetch=true&start=1&pagesize=2000',method: 'GET',async: false,headers:
                        {
                            'Content-Type': 'application/json'
                        },success: function (response) {
                        console.log("entered the response:",response);
                        var jsonData = Ext.decode(response.responseText);
                        console.log("jsonData:",jsonData);
                        var blankdata = '';
                        var resultMessage = jsonData.QueryResult.Results;
                        console.log("entered the response:",resultMessage.length);
                        this.CurrentLength = resultMessage.length;
                        this.testCaseStore = Ext.create('Rally.data.custom.Store',{
                            data:resultMessage
                        });
                        this.pendingProjects = resultMessage.length
                        console.log("this testcase store:",resultMessage);
                        _.each(resultMessage,function (data) {
                            var objID = data.ObjectID;
                            var column1 = data.Permission;
                            console.log("this result message:",column1);
                            if(userObjID[1]==objID) {
                                console.log("obj id 1 is:",objID);
                                console.log("User Reference 2:",userObjID[1]);
                                if (data.Permission != 'Editor') {
                                    deferred.resolve(this.testCaseStore);
                                }else{
                                    this.testCaseStore = Ext.create('Rally.data.custom.Store',{
                                        data:blankdata
                                    });
                                    deferred.resolve(this.testCaseStore);
                                }
                            }
                        },this)
                    },failure: function (response) {
                        deferred.reject(response.status);
                        Ext.Msg.alert('Status','Request Failed.');

                    }
                });
                return deferred;
            },
oOFoXOo 回答:发出Ajax请求以加载数据时,是否可以在Rally Grid(扩展JS)中显示“正在加载数据..”选项?

主要问题来自正在使用的Ajax请求     async:false

这阻止了javascript(唯一)线程。 如果可能,请考虑将其删除。请注意,不能保证将来会支持XMLHttpRequest同步请求。

您还必须添加成功和失败回调:     that.setLoading(false);

本文链接:https://www.f2er.com/3163834.html

大家都在问