CometVisu / CometVisu

Repository for the CometVisu building automation visualisation.
https://www.cometvisu.org/
Other
63 stars 81 forks source link

iPad shows only empty pages #569

Closed ChristianMayer closed 7 years ago

ChristianMayer commented 7 years ago

With 0.11 the (older) iPad is only showning an empty page when a config (e.g. "demo") is opened.

Running a Firebug in parallel to see the console doesn't show any error messages

peuter commented 7 years ago

Which iPad version? As we already have an issue for iPad1 #547.

ChristianMayer commented 7 years ago

iPad 3rd Generation, iOS 9.3.5

ChristianMayer commented 7 years ago

iPad and the old Windows based Safari are looking much better now - but are still not on the level they should be.

E.g. in the demo config clicking on "Trigger und Infotrigger: Erweitert..." showed me on the iPad the boron subpage (where I was before), on the Safari it blocked the browser for 5-10 seconds (with the mouse switching to the "Eieruhr") and then showed the correct page. => I suspect the event handling is not perfect yet

peuter commented 7 years ago

There was one thing missing. The events seem to work fine now (I can only test Safari 5.1 running in Wine, which is a kind of horrible for debugging as it is very unstable).

Known problems are:

ChristianMayer commented 7 years ago

573 helped a lot :+1:

Still issues:

peuter commented 7 years ago

Hm my Safari is changing the pages fast now matter if I use page or pagejump. The animations are turned off when the pages change right?

Well actually thats how the animation are currently implemented (just forgot to add the slide-out animation for the leaving page). I guess we didn't recognize that because on desktop its way faster. Anyway: I will add that animation too.

ChristianMayer commented 7 years ago

Using the demo config with Windows Safari the pages change quickly using the page jump. There might be an extremely quick animation - or none and I'm just imagine it as I'm expecting it. Clicking on a page widget uses freely counted 20 - 25 seconds.

Using the demo_flat on the same system I have a config that sets scroll_speed="0". Going to "Technik" (a page jump widget) works also immediately but then clicking on "Temperaturen" (a page widget) also takes ages. So I don't think it's an animation issue

ChristianMayer commented 7 years ago

Btw, the iPad doesn't have these performance issues. But it has troubles to show the correct target pages, sometimes it shows other pages (most often a page that was visible just before)

peuter commented 7 years ago

PageJump and PageLink (aka the page-widget) both call cv.TemplateEngine.getInstance().scrollToPage() so I have no idea why they should differ in any way. Very strange. Does the page change always takes that long or only when you open that page for the first time?

ChristianMayer commented 7 years ago

It doesn't matter how often I was on that page. It always takes longer on the page widget.

574: it works - sort of. Both pages are animated individually and as the speed is not constant the distance between the pages is changing.

The currently implemented page switch animation should look like the two pages being tightly attached to each other and just the viewbox is moving to the new page.

peuter commented 7 years ago

Another thing I cannot reproduce, Desktop + Android Tables (Lenovo Yoga2) are scrolling fine. I slowed down the animation dramatically to have a chance to see the different speeds but the animations are in perfect sync on both devices. And the normal Demo-Config speed is too fast for me to see something wrong.

ChristianMayer commented 7 years ago

Current status of iPad: After initial loading the demo page (still) can't be scrolled, the navbar is showing only "-". A page change by a sidebar pagejump shows the new page ontop(!) of the start page (id_ or any other after a reload), navbar is showing the correct path then. Any other pages (except the start page) are sliding in and out as expected - but still ontop of the start page. When the start page is selected a sliding movement is switching to that page. Afterwards page switching is working everywhere correctly.

Turning the iPad (= forcing a resize) dosen't make a difference.

Apart from that the iPad is working fine now.

The old Windows Safari is also working fine with my test cases.

joltcoke commented 7 years ago

Just checked current develop on Safari for OSX and iOS:

Overall the performance feels MUCH better now. If we're able to iron out the issues that would be a significant step forward! Thanks a lot for all the effort!

Error message when showing a page with diagram:

[Log] diagram dom not ready yet (cv-webkit.7ba412cfd45a.js, line 3) [Error] TypeError: $.plot is not a function. (In '$.plot(eh,[],ek)', '$.plot' is undefined) cv.plugins.diagram.AbstractDiagram.prototype.initDiagram() (cv-webkit.7ba412cfd45a.js:3:8401) (anonymous function) (cv-webkit.7ba412cfd45a.js:3:12779) qx.util.DeferredCall.prototype.call() (cv-webkit.js:213:157850) (anonymous function) (cv-webkit.js:213:154889) qx.util.DeferredCallManager.prototype.__dp() (cv-webkit.js:213:88712) (anonymous function) (cv-webkit.js:213:86799)

ChristianMayer commented 7 years ago

@joltcoke ich vermute mit Deiner Config. Kannst Du sicherheitshalber bitte bestätigen, dass das (bzw. was) auch mit der Demo-Config so passiert?

Mangels OSX und eines irgendwie aktuellen Safaris sollten wir möglichst viel vergleichbar lassen, bevor es an's Erweiterte geht :)

peuter commented 7 years ago

The page changing animations seem to be completely broken in safari. If I switch to a new page the old one stays in the background. Did this ever work in Safari? I don't know whats the problem here and as just running my macOS VM almost freezes my whole system I don't think that I can debug this further.

Another annoying oberservation: When I disable browser caching Safari loads the SVG-Sprite many many times -> takes ages to load the Visu in that case.

So for me I put the Safari browser in the box where the Internet Explorer is since many years: A browser I dont want to waste my spare free time with.

ChristianMayer commented 7 years ago

The old page stays in the background: see also my comment https://github.com/CometVisu/CometVisu/issues/569#issuecomment-298374919 => Does it still stay in the background when you navigate to that page? (I.e. navigate to a different page, navigate to the original page and then again to a different page: does it still stay in the background then?)

My interpretation is that there's a init problem.

peuter commented 7 years ago

All pages I navigated to stay visible. Also I can see the animation CSS settings in the pages. So there must be something wrong with the animations, I assume that the animationEnd event is not fired and because of that, the cleanup functions are not called.

peuter commented 7 years ago

Ok found the problem: I dont use animations in my config (scrollSpeed=0). But there was an error in the code which did not disable the animations in that case, but used an animation with speed = 0, which makes no sense. Other browsers do not seem to have a problem with that, but safari does not fire the animationEnd event, cause there is nothing to animation in 0s time.

@ChristianMayer This also might explain your problem with the startpage overlay, because the inital page gets loaded with speed=0 and that causes the problem.

578 fixes this problem.

peuter commented 7 years ago

@joltcoke Please also re-test if the fix solves any of your reported problems. As Christian already said, please test the demo config first, because otherwise we have no chance to reproduce the problem unless you record a log file (http://cometvisu.org/CometVisu/de/latest/manual/colab/index.html#fehlerberichte-mit-log-dateien)

ChristianMayer commented 7 years ago

578 fixed the start up issue described above.

A quick test with the demo config worked fine on iPad and the old Windows Safari

peuter commented 7 years ago

As this multi-bug-issue is kind of confusing as it is not clear which bug has been solved and which not. I'm closing this one now and suggest to open new issues for each bug left.