Useful Snippets

Welcome!


This blog is used to collect useful snippets related to Linux, PHP, MySQL and more. Feel free to post comments with improvements or questions!

Are your smart devices spying on you? Make better purchasing choices and find products that respect your privacy at Unwanted.cloud

RSS Latest posts from my personal blog


Subscribe to RSS feed


Fixing slow performance and crashes on iOS Safari and Chrome

Stanislav KhromovStanislav Khromov

We recently had issues on a newly released site. The site would appear sluggish and slow to scroll, and it would frequently crash on both iPhone and iPad, with either Safari or Chrome (which is just Safari with a different skin).

We finally managed to track this down to two issues:

Don’t use -webkit-backface-visibility: hidden;

Some people say it stops certain CSS transforms (3D) from flickering. But I’d rather the browser flickers than crashes completely. And while you’re at it…

Disable CSS3 transitions in iOS Safari

The CSS3 support in Safari, as of iOS 7.1, is still really bad in terms of memory management. Our solution to disable CSS3 transitions is to have all transitions under a body class, like this:

body.good-browser article
{
/* Do some fancy animations here */
}

And in the body:

<body class="good-browser">
...
</body>

When we detect iOS we simply remove that class (early in the body tag), and the transitions don’t run.

Example code:

<script type="text/javascript">
    if(navigator.userAgent.match(/iPhone|iPad|iPod/i))
        jQuery('body').removeClass('good-browser');
</script>
CSS

Full-stack impostor syndrome sufferer & Software Engineer at Schibsted Media Group

Comments 0
There are currently no comments.