The text as such doesn't exist until you go to a page.
When you go forward, it starts a page from the next word and fills the screen from there.
When you go back it has to calculate the approximate start of the page that will make the last word on the screen the word before the first word on the screen you just left (with me so far?). This could mean trying a first word, checking the result, adjusting, trying again, and again... which would impact on speed and battery life. So instead it approximates the first word to make a valid page that doesn't miss any text, you'll often get a few words or a line or so that previously appeared at the top of the next page - I say previously because, when you go forward again, it will again have used the word after the last word to start the next screen. This is a compromise, but does speed things and save battery.
I'm sure someone technical could explain it better, this is how I understand it which works for me, hopefully it helps you.
|