{"action":"created","issue":{"url":"https://api.github.com/repos/eclipsesource/tabris-js/issues/797","repository_url":"https://api.github.com/repos/eclipsesource/tabris-js","labels_url":"https://api.github.com/repos/eclipsesource/tabris-js/issues/797/labels{/name}","comments_url":"https://api.github.com/repos/eclipsesource/tabris-js/issues/797/comments","events_url":"https://api.github.com/repos/eclipsesource/tabris-js/issues/797/events","html_url":"https://github.com/eclipsesource/tabris-js/issues/797","id":138443172,"number":797,"title":"Provide asynchronous/preloading navigation API","user":{"login":"tbuschto","id":527303,"avatar_url":"https://avatars.githubusercontent.com/u/527303?v=3","gravatar_id":"","url":"https://api.github.com/users/tbuschto","html_url":"https://github.com/tbuschto","followers_url":"https://api.github.com/users/tbuschto/followers","following_url":"https://api.github.com/users/tbuschto/following{/other_user}","gists_url":"https://api.github.com/users/tbuschto/gists{/gist_id}","starred_url":"https://api.github.com/users/tbuschto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tbuschto/subscriptions","organizations_url":"https://api.github.com/users/tbuschto/orgs","repos_url":"https://api.github.com/users/tbuschto/repos","events_url":"https://api.github.com/users/tbuschto/events{/privacy}","received_events_url":"https://api.github.com/users/tbuschto/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/eclipsesource/tabris-js/labels/API","name":"API","color":"5319e7"},{"url":"https://api.github.com/repos/eclipsesource/tabris-js/labels/enhancement","name":"enhancement","color":"009800"},{"url":"https://api.github.com/repos/eclipsesource/tabris-js/labels/Story","name":"Story","color":"eb6420"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2016-03-04T10:50:20Z","updated_at":"2016-03-07T11:45:29Z","closed_at":null,"body":"Maybe this is a topic for 2.0 since navigation is a very central concept, but let me describe the problem anyway:\r\n\r\nIt seems to be a recurring issue that when a page is created and opened, there are still some tasks to perform before the UI is in its final state. That includes loading images, webviews, or displayable data via asynchroneous http or file APIs. This results in the ugly scenario the that the new UI changes during or shortly after the page transition. The same issue exists - to a smaller degree - for the initial UI not part of a page (navigation and drawer elements).\r\n\r\nA limited workaround would be to create the page, wait for a synthetic load event, then open it. However, this doesn't work for image pre-loading (we would need load events on all widgets that can display images, and at least in windows an image doesn't start loading until the widget is connected to the UI tree), and it delays the page transition, making the ui less responsive. It's also a lot of work.\r\n\r\nI can only speak from the perspective of a windows developer, but there is a solution that can automtically wait (with a given timeout) for all images to load - which would already be a huge win - before starting the intro animation for the new page. It also has an optional hook to indicate to the navigation logic when the page is ready to be displayed. If we provided such features as API it could fix all the issues described above."},"comment":{"url":"https://api.github.com/repos/eclipsesource/tabris-js/issues/comments/193217770","html_url":"https://github.com/eclipsesource/tabris-js/issues/797#issuecomment-193217770","issue_url":"https://api.github.com/repos/eclipsesource/tabris-js/issues/797","id":193217770,"user":{"login":"mpost","id":73655,"avatar_url":"https://avatars.githubusercontent.com/u/73655?v=3","gravatar_id":"","url":"https://api.github.com/users/mpost","html_url":"https://github.com/mpost","followers_url":"https://api.github.com/users/mpost/followers","following_url":"https://api.github.com/users/mpost/following{/other_user}","gists_url":"https://api.github.com/users/mpost/gists{/gist_id}","starred_url":"https://api.github.com/users/mpost/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mpost/subscriptions","organizations_url":"https://api.github.com/users/mpost/orgs","repos_url":"https://api.github.com/users/mpost/repos","events_url":"https://api.github.com/users/mpost/events{/privacy}","received_events_url":"https://api.github.com/users/mpost/received_events","type":"User","site_admin":false},"created_at":"2016-03-07T11:45:29Z","updated_at":"2016-03-07T11:45:29Z","body":"@tbuschto Is the problem that the image loading takes place to late? Eg. only when the page is fully visible (after the intro animation)."}}