this works for basic reload

This commit is contained in:
andygup 2014-04-01 15:55:10 -06:00
parent 0d1baa2422
commit 23f9eaecd0
4 changed files with 118 additions and 65 deletions

View File

@ -17,23 +17,47 @@ module.exports = function(grunt) {
options: {
basePath: "./",
cache: ["# <%= pkg.name %>, version: <%= pkg.version %>",
"# Home Page",
"samples/appcache-tiles.html",
"# ArcGIS API for JavaScript files",
"<%= pkg.baseURL %>/",
"<%= pkg.baseURL %>/init.js",
"<%= pkg.baseURL %>/js/dojo/dojox/gfx/svg.js",
"<%= pkg.baseURL %>/js/dojo/dojo/resources/blank.gif",
"<%= pkg.baseURL %>/js/esri/css/esri.css",
"<%= pkg.baseURL %>/js/esri/nls/jsapi_en-us.js",
"<%= pkg.baseURL %>/js/esri/images/map/logo-sm.png",
"<%= pkg.baseURL %>/js/esri/images/map/logo-med.png",
"<%= pkg.baseURL %>/js/esri/dijit/images/ajax-loader.gif",
"<%= pkg.baseURL %>/js/esri/dijit/images/popup.png",
"http://services.arcgisonline.com/ArcGIS/rest/info?f=json",
"http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer?f=json&callback=dojo.io.script.jsonp_dojoIoScript1._jsonpCallback",
"<%= pkg.optimizedApiURL %>/dojo/dojo.js",
"<%= pkg.optimizedApiURL %>/dojo/main.js",
"<%= pkg.optimizedApiURL %>/dojox/gfx/svg.js",
"<%= pkg.optimizedApiURL %>/dojo/_base/browser.js",
"<%= pkg.optimizedApiURL %>/dojox/gfx/shape.js",
"<%= pkg.optimizedApiURL %>/dojo/nls/dojo_en-us.js",
"<%= pkg.optimizedApiURL %>/dojox/gfx/shape.js",
"<%= pkg.optimizedApiURL %>/dojox/gfx/path.js",
"<%= pkg.optimizedApiURL %>/dojo/request.js",
"<%= pkg.optimizedApiURL %>/dojo/_base/NodeList.js",
"<%= pkg.optimizedApiURL %>/dojo/selector/acme.js",
"<%= pkg.optimizedApiURL %>/dojo/_base/loader.js",
"<%= pkg.optimizedApiURL %>/dojo/request/default.js",
"<%= pkg.optimizedApiURL %>/esri/geometry.js",
"<%= pkg.optimizedApiURL %>/esri/geometry/geodesicUtils.js",
"<%= pkg.optimizedApiURL %>/esri/geometry/normalizeUtils.js",
"<%= pkg.optimizedApiURL %>/esri/dijit/Attribution.js",
"<%= pkg.optimizedApiURL %>/esri/units.js",
"<%= pkg.optimizedApiURL %>/dojo/fx/Toggler.js",
"<%= pkg.arcGISBaseURL %>/js/dojo/dojox/gfx/svg.js",
"<%= pkg.arcGISBaseURL %>/js/dojo/dojo/resources/blank.gif",
"<%= pkg.arcGISBaseURL %>/js/esri/dijit/images/ajax-loader.gif",
"<%= pkg.arcGISBaseURL %>/js/esri/images/map/logo-sm.png",
"<%= pkg.arcGISBaseURL %>/js/esri/images/map/logo-med.png",
"<%= pkg.arcGISBaseURL %>/js/esri/css/esri.css",
"<%= pkg.arcGISBaseURL %>/js/esri/nls/jsapi_en-us.js",
"//services.arcgisonline.com/ArcGIS/rest/info?f=json",
"//static.arcgis.com/attribution/World_Topo_Map?f=json",
"//services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer?f=json&callback=dojo.io.script.jsonp_dojoIoScript1._jsonpCallback",
"# required for web maps",
"<%= pkg.arcGISBaseURL %>/js/esri/dijit/images/ajax-loader.gif",
"<%= pkg.arcGISBaseURL %>/js/esri/dijit/images/popup.png",
"# required custom libs",
"js/app.js",
"css/style.css"],
network: ["http://*", "https://*"],
"# /xyz/style.css",
"# /img/1.png"],
network: [
"*"
],
/*fallback: ["/ /offline.html"],*/
exclude: ["js/jquery.min.js", "vendor/**.sass", "vendor/**/src"],
/*preferOnline: true,*/
@ -43,8 +67,11 @@ module.exports = function(grunt) {
src: [
"*.html",
/*"js/*.min.js",*/
"samples/images/*.png",
"vendor/IndexedDBShim/dist/*.min.js",
"vendor/offline/offline.min.js",
"lib/tiles/*.js",
"utils/*.js"
/*
"images/*",
"css/*.css"

View File

@ -1,32 +1,58 @@
CACHE MANIFEST
# This manifest was generated by grunt-manifest HTML5 Cache Manifest Generator
# Time: Tue Apr 01 2014 11:36:38 GMT-0600 (MDT)
# Time: Tue Apr 01 2014 15:53:09 GMT-0600 (MDT)
CACHE:
# manifest-generator, version: 0.0.1
# Home Page
samples/appcache-tiles.html
# ArcGIS API for JavaScript files
//js.arcgis.com/3.8/
//js.arcgis.com/3.8/init.js
//js.arcgis.com/3.8/js/dojo/dojox/gfx/svg.js
//js.arcgis.com/3.8/js/dojo/dojo/resources/blank.gif
//js.arcgis.com/3.8/js/esri/css/esri.css
//js.arcgis.com/3.8/js/esri/nls/jsapi_en-us.js
//js.arcgis.com/3.8/js/esri/images/map/logo-sm.png
//js.arcgis.com/3.8/js/esri/images/map/logo-med.png
//js.arcgis.com/3.8/js/esri/dijit/images/ajax-loader.gif
//js.arcgis.com/3.8/js/esri/dijit/images/popup.png
http://services.arcgisonline.com/ArcGIS/rest/info?f=json
http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer?f=json&callback=dojo.io.script.jsonp_dojoIoScript1._jsonpCallback
http://jsdev.arcgis.com/o/andygup/appcache1/dojo/dojo.js
http://jsdev.arcgis.com/o/andygup/appcache1/dojo/main.js
http://jsdev.arcgis.com/o/andygup/appcache1/dojox/gfx/svg.js
http://jsdev.arcgis.com/o/andygup/appcache1/dojo/_base/browser.js
http://jsdev.arcgis.com/o/andygup/appcache1/dojox/gfx/shape.js
http://jsdev.arcgis.com/o/andygup/appcache1/dojo/nls/dojo_en-us.js
http://jsdev.arcgis.com/o/andygup/appcache1/dojox/gfx/shape.js
http://jsdev.arcgis.com/o/andygup/appcache1/dojox/gfx/path.js
http://jsdev.arcgis.com/o/andygup/appcache1/dojo/request.js
http://jsdev.arcgis.com/o/andygup/appcache1/dojo/_base/NodeList.js
http://jsdev.arcgis.com/o/andygup/appcache1/dojo/selector/acme.js
http://jsdev.arcgis.com/o/andygup/appcache1/dojo/_base/loader.js
http://jsdev.arcgis.com/o/andygup/appcache1/dojo/request/default.js
http://jsdev.arcgis.com/o/andygup/appcache1/esri/geometry.js
http://jsdev.arcgis.com/o/andygup/appcache1/esri/geometry/geodesicUtils.js
http://jsdev.arcgis.com/o/andygup/appcache1/esri/geometry/normalizeUtils.js
http://jsdev.arcgis.com/o/andygup/appcache1/esri/dijit/Attribution.js
http://jsdev.arcgis.com/o/andygup/appcache1/esri/units.js
http://jsdev.arcgis.com/o/andygup/appcache1/dojo/fx/Toggler.js
http://js.arcgis.com/3.8/js/dojo/dojox/gfx/svg.js
http://js.arcgis.com/3.8/js/dojo/dojo/resources/blank.gif
http://js.arcgis.com/3.8/js/esri/dijit/images/ajax-loader.gif
http://js.arcgis.com/3.8/js/esri/images/map/logo-sm.png
http://js.arcgis.com/3.8/js/esri/images/map/logo-med.png
http://js.arcgis.com/3.8/js/esri/css/esri.css
http://js.arcgis.com/3.8/js/esri/nls/jsapi_en-us.js
//services.arcgisonline.com/ArcGIS/rest/info?f=json
//static.arcgis.com/attribution/World_Topo_Map?f=json
//services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer?f=json&callback=dojo.io.script.jsonp_dojoIoScript1._jsonpCallback
# required for web maps
http://js.arcgis.com/3.8/js/esri/dijit/images/ajax-loader.gif
http://js.arcgis.com/3.8/js/esri/dijit/images/popup.png
# required custom libs
js/app.js
css/style.css
# /xyz/style.css
# /img/1.png
samples/images/blue-pin.png
samples/images/red-pin.png
vendor/IndexedDBShim/dist/IndexedDBShim.min.js
vendor/offline/offline.min.js
lib/tiles/FileSaver.js
lib/tiles/base64utils.js
lib/tiles/dbStore.js
lib/tiles/offlineTilesEnabler.js
lib/tiles/tilingScheme.js
utils/appCacheManager.js
utils/debouncer.js
NETWORK:
http://*
https://*
*

View File

@ -5,8 +5,8 @@
"https://www.npmjs.org/doc/cli/npm-init.html"
],
"name": "manifest-generator",
"optimizedApiURL": "//jsdev.arcgis.com/o/andygup/appcache1",
"arcGISBaseURL":"//js.arcgis.com/3.8",
"optimizedApiURL": "http://jsdev.arcgis.com/o/andygup/appcache1",
"arcGISBaseURL":"http://js.arcgis.com/3.8",
"version": "0.0.1",
"private": true,
"description": "manifest generator project",

View File

@ -160,20 +160,24 @@
function updateState(){
if(Offline.state === 'up'){
imgOfflineIndicator.src = bluePinPath;
tiles.goOnline();
baseMapLayer.goOnline();
}
else{
imgOfflineIndicator.src = redPinPath;
tiles.goOffline();
baseMapLayer.goOffline();
}
}
function updateOfflineUsage()
{
var count = getEstimateTileCount(function(info){
console.log("COUNT " + info)
tileInfo.innerHTML = "Tile count: " + info.tileCount + "\r\nBytes: " + info.sizeBytes;
var count = getEstimateTileCount(function(info,err){
if(info != null){
console.log("COUNT " + info)
tileInfo.innerHTML = "Tile count: " + info.tileCount + "\r\nBytes: " + info.sizeBytes;
}
else{
console.log("ERROR updateOfflineUsage(): " + JSON.stringify(err));
}
});
}
@ -187,25 +191,31 @@
var level = map.getLevel();
var url = baseMapLayer.getTileUrlsByExtent(extent,level)[0];
baseMapLayer._lastTileUrl = url;
baseMapLayer.estimateTileSize(function(tileSize){
baseMapLayer.estimateTileSize(function(tileSize,err){
var totalEstimation = {tileCount:0,sizeBytes:0};
if(tileSize != null){
var totalEstimation = {tileCount:0,sizeBytes:0};
var min = map.getLevel() + minZoomAdjust;
var max = map.getLevel() + maxZoomAdjust;
var maxZoom = Math.min(mMaxZoom, max); //prevent errors by setting the tile layer floor
var minZoom = Math.max(mMinZoom, min); //prevent errors by setting the tile layer ceiling
var min = map.getLevel() + minZoomAdjust;
var max = map.getLevel() + maxZoomAdjust;
var maxZoom = Math.min(mMaxZoom, max); //prevent errors by setting the tile layer floor
var minZoom = Math.max(mMinZoom, min); //prevent errors by setting the tile layer ceiling
for(var level = minZoom; level<= maxZoom; level++)
{
var levelEstimation = baseMapLayer.getLevelEstimation(this.getExtentBuffer(EXTENT_BUFFER,map.extent),level,tileSize);
for(var level = minZoom; level<= maxZoom; level++)
{
var levelEstimation = baseMapLayer.getLevelEstimation(baseMapLayer.getExtentBuffer(EXTENT_BUFFER,map.extent),level,tileSize);
totalEstimation.tileCount += levelEstimation.tileCount;
totalEstimation.sizeBytes += levelEstimation.sizeBytes;
totalEstimation.tileCount += levelEstimation.tileCount;
totalEstimation.sizeBytes += levelEstimation.sizeBytes;
}
console.log("Size estimate: " + totalEstimation.sizeBytes + ", tile count: " + totalEstimation.tileCount)
callback(totalEstimation,null);
}
else{
callback(null,err);
}
console.log("Size estimate: " + totalEstimation.sizeBytes + ", tile count: " + totalEstimation.tileCount)
callback(totalEstimation);
}.bind(this))
}
}
@ -276,26 +286,16 @@
btnOnlineOffline.innerHTML = "2. Go Online";
imgOfflineIndicator.src = redPinPath;
imgOfflineIndicator.offlineColor = "red";
goOffline();
baseMapLayer.goOffline();
}
else{
btnOnlineOffline.innerHTML = "2. Go Offline";
imgOfflineIndicator.src = bluePinPath;
imgOfflineIndicator.offlineColor = "blue";
goOnline();
baseMapLayer.goOnline();
}
}
function goOnline()
{
baseMapLayer.goOnline();
}
function goOffline()
{
baseMapLayer.goOffline();
}
function panLeft(){
map.panLeft();
}