I work on Firefox OS so probably worth taking bias into account.
On low end devices fxos runs reasonably well but with noticeable lag, we have put in huge amounts of effort on the low end to make that possible. On high end devices the 'native' fxos application are incredibly snappy and there has been very little done to improve performance on high end devices.
Most of the stuff we have done is common sense, some you will see a lot of people doing, some almost no people do.
1. Shorten the path to rendering first screen, dont block on reading some data, load all scripts async etc.
2. Never animate top / left, use CSS transitions for everything.
3. We use 'will-change' to ensure that the graphics are properly layered for when they do animate (https://developer.mozilla.org/en-US/docs/Web/CSS/will-change)
4. Offline assets, in fxos we use packaged apps for various reasons, however one of the benefits is that reading from the filesystem is faster than reading over the network.
If I had one performance tip for web developers, look into how far you can use appcache to store resources offline (or if your feeling fancy, service workers). Offline capable web apps have a night and day difference.