You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Joe Bowser (JIRA)" <ji...@apache.org> on 2014/01/07 23:37:52 UTC

[jira] [Updated] (CB-5664) AppCache's "checking" event fired more than once per App startup.

     [ https://issues.apache.org/jira/browse/CB-5664?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Joe Bowser updated CB-5664:
---------------------------

    Priority: Minor  (was: Major)

> AppCache's "checking" event fired more than once per App startup.
> -----------------------------------------------------------------
>
>                 Key: CB-5664
>                 URL: https://issues.apache.org/jira/browse/CB-5664
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 3.3.0
>         Environment: Android 4.1.2 (SDK 16)
>            Reporter: Godric Kwok
>            Priority: Minor
>
> +Expected Behavior:+
> 1) AppCache is checked only *once* per App startup.
> +Observed Behavior:+
> 1) AppCache is checked *multiple times* randomly per App startup.
> +Steps to repeat:+
> 0) WebView loading a site with manifest.
> 1) console.log() AppCache's "checking" event.
> 2) Start App, see "checking" once.
> 3) *navigator.app.exitApp()*, then re-launches App.
> 4) First relaunch leads to a single "checking" still.
> 5) Repeat the relaunch *a few times*.
> 6) Then you'll see sometimes it's a double, a triple, or a quadruple (but never 5x).
> 7) Only a *"KILL"* from task switcher will reset these accumulations.
> +Unwanted Results:+
> 1) Multiple "checking" triggers multiple subsequent events (download, updateready, etc...) that renders the App slow.
> 2) Multiple "updateready" triggers multiple swapCache()/reload() that renders the App appeared broken.
> +Code Snippet:+
> super.loadUrl( 'http://my.site.with.manifest/' );
> document.addEventListener('deviceready', function(){
> function logEvent(event) {
> 	console.log('appcache: '+event.type);
> }
> window.applicationCache.addEventListener('checking', logEvent, false);
> window.applicationCache.addEventListener('noupdate', logEvent, false);
> window.applicationCache.addEventListener('downloading', logEvent, false);
> window.applicationCache.addEventListener('progress', logEvent, false);
> window.applicationCache.addEventListener('cached', logEvent, false);
> window.applicationCache.addEventListener('updateready', logEvent, false);
> window.applicationCache.addEventListener('obsolete', logEvent, false);
> window.applicationCache.addEventListener('error', logEvent, false);
> document.addEventListener('backbutton', function(){
> 	navigator.app.exitApp();
> }, false);
> }, false);
> +LogCat pattern:+
> *(1x)*
> 12-17 21:11:13.470: I/Web Console(2142): appcache: checking:23
> 12-17 21:11:13.478: I/Web Console(2142): appcache: noupdate:23
> *(1x, but +double+ updateready)*
> 12-17 21:11:47.775: I/Web Console(2142): appcache: checking:23
> 12-17 21:11:50.072: I/Web Console(2142): appcache: downloading:23
> 12-17 21:11:50.072: I/Web Console(2142): appcache: progress:23
> 12-17 21:11:50.166: I/Web Console(2142): appcache: progress:23
> 12-17 21:11:50.197: I/Web Console(2142): appcache: progress:23
> 12-17 21:11:50.697: I/Web Console(2142): appcache: progress:23
> 12-17 21:11:50.697: I/Web Console(2142): appcache: progress:23
> 12-17 21:11:50.697: I/Web Console(2142): appcache: updateready:23
> 12-17 21:11:50.697: I/Web Console(2142): appcache: updateready:23
> *(2x)*
> 12-17 21:12:27.283: I/Web Console(2142): appcache: checking:23
> 12-17 21:12:27.283: I/Web Console(2142): appcache: checking:23
> 12-17 21:12:29.759: I/Web Console(2142): appcache: noupdate:23
> 12-17 21:12:29.759: I/Web Console(2142): appcache: noupdate:23
> *(2x)*
> 12-17 21:12:35.447: I/Web Console(2142): appcache: checking:23
> 12-17 21:12:35.447: I/Web Console(2142): appcache: checking:23
> 12-17 21:12:38.025: I/Web Console(2142): appcache: noupdate:23
> 12-17 21:12:38.025: I/Web Console(2142): appcache: noupdate:23
> *(3x)*
> 12-17 21:12:45.322: I/Web Console(2142): appcache: checking:23
> 12-17 21:12:45.322: I/Web Console(2142): appcache: checking:23
> 12-17 21:12:45.322: I/Web Console(2142): appcache: checking:23
> 12-17 21:12:47.345: I/Web Console(2142): appcache: noupdate:23
> 12-17 21:12:47.345: I/Web Console(2142): appcache: noupdate:23
> 12-17 21:12:47.345: I/Web Console(2142): appcache: noupdate:23



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)