I always wait and buy on the ship - BUT that is because we are Pinnacle. The "base" price is the same online or on the ship (for example - if you look in the planner and it says $110 but there is 30% off, it is still $110 base on the ship, but I get 40% off) - I know this is true as I have done this many times, - however, the discount can be more online that what you will get on the ship
But for us, the most it ever goes on sale for online is 30% or 35%. If we wait until we board, we get 40%, so for us, always cheaper to wait and get it on the ship. But not the case for most people.
when we were D+, I always booked online ahead of time when it went to 30% off.