JSON structure can be very lean and it's a solution for passing width and height as you suggest.
For example:
```javascript
layout = {
  1: {
    width: 800,
    height: 1300,
    ctm: [1.344538,0.000000,0.000000,1.344538,0.000000,0.000000]
  },
  2: {
    width: 1300,
    height: 800,
    ctm: [1.344538,0.000000,0.000000,1.344538,0.000000,0.000000]
  },
 ...
}
```

I agree putting a spinner, but inside a fake div .pc. I think that the full structure (a div .pd and a .pf) is still needed to resemble aesthetically the other pages when you scroll (and for consistency too). Furthermore once page is loaded, the content just appear and the frame stay there because it already has the correct shape and size.