regebro / impress-console

Speaker notes for impress.js
MIT License
133 stars 32 forks source link

Extreme lags during step transition (workaround) #2

Open torbjoernk opened 11 years ago

torbjoernk commented 11 years ago

This is more of a FYI than a bug. I just added impress-console to my presentation and experienced severe lags during all step transitions. I fixed this by commenting out lines 91 to 105. Step transition is now smooth again though the transition is at first not in sync between the presentation and console. However, when the transition in the presentation is complete, the console preview gets updated. Just a minor flaw but without any lags.

PS: Tested with recent Chrome (24.0).

regebro commented 11 years ago

Having three copies to update at the same time does put a lot more pressure on the PC. But I think it's important that the transitions happen in sync. When you are making a presentation you have your back to the screen, the console views are your view of the screen, so they need to get updated at the same time.

Possibly we could get away with not updating the preview, can you try commenting out only 101-105 and see if that's enough?

torbjoernk commented 11 years ago

Unfortunately, there is still a little lag on the presentation slide. In my case I'm happy with non-perfect sync. That's the problem with old computers.

regebro commented 11 years ago

Right, and also cheaper netbooks etc. I'll keep this ticket open for a while, if this is a problem for more people I might introduce some sort of configuration setting for this.

martynwheeler commented 11 years ago

I'm trying to work out why the console is eating up so much of my cpu. When I first start it up i get a burst of cpu activity which subsides. However, as soon as I make a slide transition the cpu goes up and stays up (65% on my 1.1GHz pentium M old laptop). What is it in the code that is using up so much cpu when I am sitting on a slide?

Thanks Martyn

regebro commented 11 years ago

It should be nothing. But It's doing three HTML5 transitions at once, that uses a lot of CPU, especially if your combination of browser, OS and videocards ends up not having good support for acceleration.

ngryman commented 10 years ago

Hi,

I'm experiencing the same problem, I use heavy styles and transitions. And on a wide TV screen, it's choppy.

I think it would be handy to be able to style and tweak previews, to simplify them (i.e. remove transitions, gradients, etc...). On each preview body's element, you could simply add a impress-console-preview class. We will then be able to target previews and style them in consequence.

What do you think?

regebro commented 10 years ago

The transitions are set by impress.js directly on the slide divs, so they are hard to override. Just adding a "transition: none;" made no difference. Overriding the transform may make a difference, but I don't think that can be done with just css, as you still have to have a transform.

Possibly this could be solved by modifying impress.js itself to not have any transitions if a certain class is set.

In any case I modified impress-console to set an "impress-console" class on the body in the previews. If you can come up with some clever trick to get rid of the transitions that would be cool.

ngryman commented 10 years ago

Hey,

Thanks for that.

I'll try to adapt my current presentation and give you some feedback. I guess you can override impress's inline styles with !important to avoid transition and all.

regebro commented 10 years ago

I tried that, but I couldn't get that to work, but I'm not a CSS guru. If you succeed, please report back. :-)

ngryman commented 10 years ago

Me again,

So, basically, if you want to prevent every impress transition, adding this piece of CSS disables slides transition in previews:

.impress-console #impress div {
    transition: none !important;
}

If you want to keep the correct timing: display the new slide after the time of the transition, but without transition, you can do the following:

.impress-console #impress div {
    transition-duration: 0 !important;
    transition-delay: 1000ms !important;
}
regebro commented 10 years ago

That works, although I don't find any improvements in time. Then again, on the computer I am on now, there should be no hick-ups or delays at all, and there still is during some transitions.