incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Olivier Louvignes (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CB-828) iOS contact.save() stucks the UI from updating on heavy load
Date Fri, 25 May 2012 13:30:23 GMT

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

Olivier Louvignes updated CB-828:
---------------------------------

    Description: 
I'm trying to restore 3000 contacts on a device, since i need to display a progress UI, I
had to use something like this (SenchaTouch 2 code but you get the point).

[CODE]

//forEach contacts as contact...

_.delay(function() {
				contact.save({callback : function(contact, operation) {
					d&&console.log(displayName + ' ~ saved ('+ action +') contact', arguments);
					j++;
					App.getViewport().mask({message: __('restore...'), details: j + '/' + count, progress:
j/count, mode: 'determinate'});
					// Last item ?
					if(j == count) {
						contactStore.clearFilter();
						return self.afterRestore(callback);
					}
				}});
			}, 25*i);

[/CODE]

Works quite well in the simulator but i'm getting regular "failed to return after waiting
10 seconds. main run loop mode: kCFRunLoopDefaultMode" on a device.

Major issue is that UI gets stuck for minutes, ends up crashing.

Would there be a way to somehow use another thread for theses AddressBook operations?

  was:
I'm trying to restore 3000 contacts on a device, since i need to display a progress UI, I
had to use something like this :

[CODE]

//forEach contacts as contact...

_.delay(function() {
				contact.save({callback : function(contact, operation) {
					d&&console.log(displayName + ' ~ saved ('+ action +') contact', arguments);
					j++;
					App.getViewport().mask({message: __('restore...'), details: j + '/' + count, progress:
j/count, mode: 'determinate'});
					// Last item ?
					if(j == count) {
						contactStore.clearFilter();
						return self.afterRestore(callback);
					}
				}});
			}, 25*i);

[/CODE]

Works quite well in the simulator but i'm getting regular "failed to return after waiting
10 seconds. main run loop mode: kCFRunLoopDefaultMode" on a device.

Major issue is that UI gets stuck for minutes, ends up crashing.

Would there be a way to somehow use another thread for theses AddressBook operations?

    
> iOS contact.save() stucks the UI from updating on heavy load
> ------------------------------------------------------------
>
>                 Key: CB-828
>                 URL: https://issues.apache.org/jira/browse/CB-828
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS
>            Reporter: Olivier Louvignes
>            Assignee: Shazron Abdullah
>              Labels: contacts
>
> I'm trying to restore 3000 contacts on a device, since i need to display a progress UI,
I had to use something like this (SenchaTouch 2 code but you get the point).
> [CODE]
> //forEach contacts as contact...
> _.delay(function() {
> 				contact.save({callback : function(contact, operation) {
> 					d&&console.log(displayName + ' ~ saved ('+ action +') contact', arguments);
> 					j++;
> 					App.getViewport().mask({message: __('restore...'), details: j + '/' + count, progress:
j/count, mode: 'determinate'});
> 					// Last item ?
> 					if(j == count) {
> 						contactStore.clearFilter();
> 						return self.afterRestore(callback);
> 					}
> 				}});
> 			}, 25*i);
> [/CODE]
> Works quite well in the simulator but i'm getting regular "failed to return after waiting
10 seconds. main run loop mode: kCFRunLoopDefaultMode" on a device.
> Major issue is that UI gets stuck for minutes, ends up crashing.
> Would there be a way to somehow use another thread for theses AddressBook operations?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message