UNPKG

dojox

Version:

Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.

92 lines (85 loc) 2.83 kB
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8"/> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no"/> <meta name="apple-mobile-web-app-capable" content="yes"/> <title>EdgeToEdgeStoreList - Auto Load</title> <script type="text/javascript" src="../deviceTheme.js" data-dojo-config="mblThemeFiles: ['base']"></script> <script type="text/javascript" src="../../../dojo/dojo.js" data-dojo-config="async: true, parseOnLoad: true"></script> <script type="text/javascript"> require([ "dojo/_base/Deferred", "dojo/dom-class", "dojo/store/Cache", "dojo/store/JsonRest", "dojo/store/Memory", "dojo/store/Observable", "dojo/ready", "dijit/registry", "dojox/mobile/ProgressIndicator", "dojox/mobile/parser", "dojox/mobile", "dojox/mobile/compat", "dojox/mobile/ScrollableView", "dojox/mobile/EdgeToEdgeStoreList" ], function(Deferred, domClass, Cache, JsonRest, Memory, Observable, ready, registry, ProgressIndicator){ //var url = "data/fruits.json"; var url = "data/fake_service.php"; var memoryStore = new Memory({idProperty:"label"}); var restStore = new JsonRest({idProperty:"label", target: url}); store = new Cache(restStore, memoryStore); var start = 1, count = 5, prog1 = null, list = null; function loadMore(){ busy(true); setTimeout(function(){ // to simulate network latency Deferred.when(list.setQuery({start:start, count:count}), function(){ busy(false); }); start += count; return false; }, 1000); }; function busy(flag){ if(!prog1){ prog1 = new ProgressIndicator({size:30, center:false}); prog1.domNode.style.position = "absolute"; prog1.domNode.style.margin = "5px"; domClass.add(prog1.domNode, "mblProgWhite"); } if(flag){ var head1 = registry.byId("head1"); prog1.placeAt(head1.domNode); prog1.start(); }else{ prog1.stop(); } } adjustDestination = function(to, pos, dim){ var dim = this.getDim(); var h = dim.c.h; // container height var disp = dim.d.h; // display height if(to.y < disp - h){ loadMore(); to.y = disp - h; } return true; } ready(function(){ list = registry.byId("list"); list.setStore(store, {start:start, count:count}); start += count; }); }); </script> </head> <body style="visibility:hidden;"> <div data-dojo-type="dojox.mobile.ScrollableView" data-dojo-props='adjustDestination:adjustDestination'> <h1 data-dojo-type="dojox.mobile.Heading" id="head1" data-dojo-props='fixed:"top"'>EdgeToEdgeStoreList</h1> <ul data-dojo-type="dojox.mobile.EdgeToEdgeStoreList" id="list" data-dojo-props='append:true'></ul> </div> </body> </html>