danielmai commented :
Using val() with offset sounds like a valid feature.
Took another look at your specific use case. You’d like to do message limiting, so would it be better to use first: to retrieve only N messages? Instead of offset, which skips the first N messages and returns the rest.