View difference between Paste ID: aq8Ad5j3 and 6e4HYz3C
SHOW: | | - or go back to the newest paste.
1-
var store1Loaded = false;
1+
var store1Loaded = false;
2-
var store2Loaded = false;
2+
var store2Loaded = false;
3-
3+
4-
store1.on('load', function(){
4+
store1.on('load', function(){
5-
    store1Loaded = true;
5+
    store1Loaded = true;
6-
});
6+
7-
7+
8-
store2.on('load', function(){
8+
store2.on('load', function(){
9-
    store1Loaded = true;
9+
    store1Loaded = true;
10-
});
10+
11-
11+
12-
12+
13-
store1.load();
13+
store1.load();
14-
store2.load();
14+
store2.load();
15-
15+
16-
function WaitForFunction()
16+
function WaitForFunction()
17-
{
17+
{
18-
    if (!store1Loaded || !store2Loaded)) {
18+
    if (!store1Loaded || !store2Loaded)) {
19-
       setTimeout( WaitForFunction, 100);
19+
       setTimeout( WaitForFunction, 100);
20-
       return;
20+
       return;
21-
    }
21+
    }
22-
    AllStoresLoaded();
22+
    AllStoresLoaded();
23-
}
23+
24-
24+
25-
function AllStoresLoaded(){
25+
function AllStoresLoaded(){
26-
      //Do Something
26+
      //Do Something
27
}
28
	
29-
var store1 = Ext.create('Ext.data.Store', {
29+
var store1 = Ext.create('Ext.data.Store', {
30-
    model: myModel,
30+
    model: myModel,
31-
    storeId: 'store1', // store needs to be done MVC style or have this config
31+
    storeId: 'store1', // store needs to be done MVC style or have this config
32-
    proxy: {
32+
    proxy: {
33-
        type: 'ajax', 
33+
        type: 'ajax', 
34-
        url: 'url...',
34+
        url: 'url...',
35-
        reader: 'json'
35+
        reader: 'json'
36-
    },
36+
    },
37-
    autoLoad: {
37+
    autoLoad: {
38-
        callback: initData // do this function when it loads
38+
        callback: initData // do this function when it loads
39-
    }
39+
    }
40-
});
40+
41-
41+
42-
var store2 = Ext.create('Ext.data.Store', {
42+
var store2 = Ext.create('Ext.data.Store', {
43-
    model: myModel,
43+
    model: myModel,
44-
    storeId: 'store2',
44+
    storeId: 'store2',
45-
    proxy: {
45+
    proxy: {
46-
        type: 'ajax', 
46+
        type: 'ajax', 
47-
        url: 'url...',
47+
        url: 'url...',
48-
        reader: 'json'
48+
        reader: 'json'
49-
    },
49+
    },
50-
    autoLoad: {
50+
    autoLoad: {
51-
        callback: initData // do this function when it loads
51+
        callback: initData // do this function when it loads
52-
    }
52+
    }
53-
});
53+
54-
54+
55-
// the stores to be checked
55+
// the stores to be checked
56-
var myComboStores = ['store1', 'store2']
56+
var myComboStores = ['store1', 'store2']
57-
57+
58-
// function does logic if they are both finished loading
58+
// function does logic if they are both finished loading
59-
function initData() {
59+
function initData() {
60-
    var loaded = true;
60+
    var loaded = true;
61-
    Ext.each(myComboStores, function(storeId) {
61+
    Ext.each(myComboStores, function(storeId) {
62-
        var store = Ext.getStore(storeId);
62+
        var store = Ext.getStore(storeId);
63-
        if (store.isLoading()) {
63+
        if (store.isLoading()) {
64-
            loaded = false;
64+
            loaded = false;
65-
        }
65+
        }
66-
    });
66+
    });
67-
    if(loaded) {
67+
    if(loaded) {
68-
        // do stuff with the data
68+
        // do stuff with the data
69-
    }
69+
    }
70
}
71
	
72-
var allStores = [store1, store2],
72+
var allStores = [store1, store2],
73-
    len = allStores.length,
73+
    len = allStores.length,
74-
    loadedStores = 0,
74+
    loadedStores = 0,
75-
    i = 0;
75+
    i = 0;
76-
76+
77-
for (; i < len; ++i) {
77+
for (; i < len; ++i) {
78-
    allStores[i].on('load', check, null, {single: true});
78+
    allStores[i].on('load', check, null, {single: true});
79-
}
79+
80-
80+
81-
function check() {
81+
function check() {
82-
    if (++loadedStores === len) {
82+
    if (++loadedStores === len) {
83-
        AllStoresLoaded();
83+
        AllStoresLoaded();
84-
    }
84+
    }
85-
}
85+
86-
86+
87-
function AllStoresLoaded() {
87+
function AllStoresLoaded() {
88-
    //Do Something
88+
    //Do Something
89
}
90
	
91-
function storeLoadingHandler(justLoadedStore) {
91+
function storeLoadingHandler(justLoadedStore) {
92-
    // I use some quick hacky flag, you can do it by your own way
92+
    // I use some quick hacky flag, you can do it by your own way
93-
    justLoadedStore.loaded = true;
93+
    justLoadedStore.loaded = true;
94-
94+
95-
    var allStoresLoaded = true;
95+
    var allStoresLoaded = true;
96-
96+
97-
    // just walk through all stores registered in the application
97+
    // just walk through all stores registered in the application
98-
    // do not forget to use MVC-style stores or add 'storeId' manually
98+
    // do not forget to use MVC-style stores or add 'storeId' manually
99-
    // or register every store with your custom code
99+
    // or register every store with your custom code
100-
    Ext.StoreManager.each(function(existingStore) {
100+
    Ext.StoreManager.each(function(existingStore) {
101-
        // we have to ignore system stores
101+
        // we have to ignore system stores
102-
        if (existingStore.storeId != 'ext-empty-store') {
102+
        if (existingStore.storeId != 'ext-empty-store') {
103-
            if (!existingStore.loaded) { // our flag or undefined
103+
            if (!existingStore.loaded) { // our flag or undefined
104-
                // nope, at least one of stores is not loaded
104+
                // nope, at least one of stores is not loaded
105-
                allStoresLoaded = false;
105+
                allStoresLoaded = false;
106-
106+
107-
                return false
107+
                return false
108-
            }
108+
            }
109-
        }
109+
        }
110-
    })
110+
    })
111-
111+
112-
    if (allStoresLoaded) // then do something
112+
    if (allStoresLoaded) // then do something
113-
        alert('All stores are loaded.');
113+
        alert('All stores are loaded.');
114-
}
114+
115-
115+
116-
// add the loading handler for all stores
116+
// add the loading handler for all stores
117-
Ext.StoreManager.each(function() {
117+
Ext.StoreManager.each(function() {
118-
    this.on('load', storeLoadingHandler);
118+
    this.on('load', storeLoadingHandler);
119
})
120
	
121-
Ext.create("Ext.data.Store", {
121+
Ext.create("Ext.data.Store", {
122-
    ...,
122+
    ...,
123-
    loading: true,
123+
    loading: true,
124-
    ...
124+
    ...
125
});
126
	
127-
function createStore(id) {
127+
function createStore(id) {
128-
    return Ext.create('Ext.data.Store', {
128+
    return Ext.create('Ext.data.Store', {
129-
        storeId: 'store_' + id,
129+
        storeId: 'store_' + id,
130-
        alias: 'store.store_' + id,
130+
        alias: 'store.store_' + id,
131-
        proxy: {
131+
        proxy: {
132-
            type: 'ajax',
132+
            type: 'ajax',
133-
            url: 'data.json',
133+
            url: 'data.json',
134-
            timeout: 300000,
134+
            timeout: 300000,
135-
            reader: {
135+
            reader: {
136-
                type: 'json',
136+
                type: 'json',
137-
                rootProperty: 'data'
137+
                rootProperty: 'data'
138-
            }
138+
            }
139-
        }
139+
        }
140-
    });
140+
    });
141
}
142
	
143-
var storeArry = [],
143+
var storeArry = [],
144-
    store = '';
144+
    store = '';
145-
145+
146-
for (var key = 0; key < 5; key++) {
146+
for (var key = 0; key < 5; key++) {
147-
    storeArry.push(createStore(key).storeId);
147+
    storeArry.push(createStore(key).storeId);
148
}
149
	
150-
Ext.getBody().mask('Please wait..');
150+
Ext.getBody().mask('Please wait..');
151-
Ext.defer(function () {
151+
Ext.defer(function () {
152-
    Ext.getBody().unmask();
152+
    Ext.getBody().unmask();
153-
    Ext.Array.forEach(storeArry, function (storeId) {
153+
    Ext.Array.forEach(storeArry, function (storeId) {
154-
        //For checking store is created or not
154+
        //For checking store is created or not
155-
        //if store is not created we can create dyanamically using passing storeId/alias
155+
        //if store is not created we can create dyanamically using passing storeId/alias
156-
        store = Ext.getStore(storeId);
156+
        store = Ext.getStore(storeId);
157-
        if (Ext.isDefined(store) == false) {
157+
        if (Ext.isDefined(store) == false) {
158-
            store = Ext.create(storeId);
158+
            store = Ext.create(storeId);
159-
        }
159+
        }
160-
        store.load({
160+
        store.load({
161-
            callback: function () {
161+
            callback: function () {
162-
                //On every store call back we can remove data from storeArray or maintain a veribale for checking.
162+
                //On every store call back we can remove data from storeArray or maintain a veribale for checking.
163-
                Ext.Array.remove(storeArry, this.storeId);
163+
                Ext.Array.remove(storeArry, this.storeId);
164-
                if (storeArry.length == 0) {
164+
                if (storeArry.length == 0) {
165-
                    Ext.Msg.alert('Success', 'All stored is loaded..!');
165+
                    Ext.Msg.alert('Success', 'All stored is loaded..!');
166-
                }
166+
                }
167-
            }
167+
            }
168-
        });
168+
        });
169-
    });
169+
    });
170
}, 3000);