Dojo использует «магазины» для извлечения данных с серверов. Эти магазины выходят и получают данные лениво, поэтому только когда вы сначала запросите их. Каждый раз, когда ваш код JavaScript нуждается в данных, он может запросить магазин, и если он уже его вытащил, он вернет его, и в противном случае он выйдет и выберет его.
Из-за асинхронного характера магазинов вам необходимо выполнять асинхронный вызов каждый раз, когда вам нужны данные.
В вашем случае вы могли бы сделать что-то вроде:
// Create the store for later use
var store = new dojo.data.ItemFileReadStore({
contentType: 'application/json'
,clearOnClose: true
,urlPreventCache: true
,url: "http://192.168.1.65:9080/RAD8JAX-RSWeb/jaxrs/customers"
});
И каждый раз, когда вам нужно получить данные из магазина вы делаете:
store.fetch({
onItem: function(item, request) {
alert('I fire after each returned json item')
}
,onComplete: function(items, findResult) {
alert('I fire when the data has loaded completely.');
}
,onError: function(error, request) {
alert('I fire when an error occurs');
}
});
Только первый раз будет запрос, отправленный на сервер. Все остальные запросы будут отправлены из кеша магазинов. Если вы хотите очистить кеш, вам нужно «закрыть» хранилище. В следующий раз выборка будет называться на магазин приведет новый запрос к server.You может закрыть его так:
store.close();
магазины предназначены для обслуживания данных сервера в технике данных Transparant способом. Поэтому неважно, что вы обслуживаете json, xml или csv: все это будет загружено в магазин и будет вам предоставлено одинаково. Вам просто нужно знать две вещи:
- должен быть подан в определенном формате данные: См http://livedocs.dojotoolkit.org/dojo/data/ItemFileReadStore#item-structure-examples для формата
- Все элементы, которые вы получаете в методах onItem и OnComplete могут быть использованы только через dojo Read API, который вы можете прочитать здесь: http://dojotoolkit.org/api/1.7/dojo/data/api/Read
Существует много типов магазинов, ItemFileReadStore - это просто пример.
Надеется, что это помогает
Вы делаете запрос от HTML страницы на на http://192.168.1.65:9080? – abraham