I was having the same problem. This is a percieved delay.
By default, Safari uses it's cached version of the previous page to refresh the window when navigating back, and when it's pulling from its cache, the refresh happens quickly enough that we don't really notice. When Safari refreshes the page from the server, we see a longer delay while it does so. We're used to both of these scenarios from pre-swipe-gesture days.
Under normal circumstances, Safari will only refresh the page from the server either because it's been told to do so by the webpage, or an extension requires it. For example:
Other web pages use HTML code to achieve the same onLoad server refresh or to prevent a web browser from caching the page in the first place. Since it's coded in HTML, nothing will disable this behavior, this may be why nothing works for some people.
Some individual extensions or plugins require a server refresh on page load, this is why disabling some or all extensions fixed it for some and disabling plugins fixed it for others.
FYI, (for testing) Gawker sites use one of these refresh-on-page-load strategies. In either of these cases, Safari is forced to refresh the page from the server.
When you use the swipe-back navigation, Safari performs the animation you see where the page slides off to the right, revealing the previous page below it. Safari does this by substituting the "live" webpage with a snapshot of both the current and the previous pages to perform the animation. Once the animation is complete, Safari then reloads the page from its cache, and if instructed by the webpage, refreshes it from the server. If the page included the HTML meta tag "NO-CACHE", then there is no page in Safari's cache to draw from and it has no choice but to refresh it from the server.
You can see this snapshot substitution happen via the Debug menu. (look back on this thread or google for how to enable it.) Select Debug > Miscillaneous Flags > Discolor Fluid Swipe Snapshots
Now navigate to a page and swipe back. You'll see the snapshot that Safari is using to show you both the page you're on and the previous page during the animation because it'll be grayed over with a dull brown-ish color. The discoloration shows you that you're not seeing the live webpage itself, but Safari's snapshot of it. Once the animation completes, you'll see the discoloration go away and the previous page is fully displayed. Safari then reloads it as explained above.
Now go to System Preferences > Trackpad > More Gestures, and change "Swipe between pages" to "Swipe with two or three fingers". Swiping with three fingers bypasses Safari's swipe-back animation. Now navigate using a three finger swipe and you'll see what Safari is doing without the animation, and it feels normal.
The percieved part:
The swipe-back animation makes you take notice of the fact that it's refreshing. Because you're seeing the page displayed underneath the one that's sliding out, you expect it to remain static once the animation finishes. Then it refreshes and you're like, "What the ****? it was just there, why did it have to refresh?" Without the animation, it feels normal.
To fix it, perhaps Apple could code Safari to keep recent history pages open and active in seperate processes (like it currently does with open tabs and windows) and display that at the end of the snapshot animation instead of pulilng from its cache. It might be a worthy memory trade-off. PSST - you listening, Apple?
As it sits, the animation is a cool idea, with a no-win implimentation.
Unfortunately, I have not found a way to disable the animation on a 2-finger swipe. So when I browse Gawker sites and other regulars such as Digg and Reddit, which I know force a refresh, I'll use a 3-finger swipe to navigate.
Hope this clears up some confusion.
Well... Your post makes a lot of sense, except for the fact that other browsers, chrome for example, don't refresh the whole page like Safari does... Why is that?
That's why I use chrome instead of safari.
I don't think it is a "perceived" thing. We noticed it cuz it didn't use to do it before, the proof? Other browsers don't do it.
My best guess is that Firefox and Chrome use a more aggressive caching strategy.
Historically, Apple writes Safari to adhere closely to the standards and protocols set forth by the W3C, and protocol says that a cached page be checked against the server version when it's referred so the user is seeing an accurate version of the page.
Web devs will tell you that Safari is a breath of fresh air when coding a website, because it follows all the rules and is usually among the first to impliment new upcoming standards that haven't yet been officially ratified by W3C (early support for color profiles, HTML5, etc).
While Chrome and Firefox may trade off protocol recommendations for more persistent caching, which usually (but not always) works well for the end user, this strategy may also occasionally show up as a bug and can be a major headache for web developers. Internet Explorer is a shining example of this. Us web devs can code a site and it'll work and display perfectly Safari, Chrome and all the rest, and then we have to recode it with hacks to work in IE, which doesn't adhere to standards, and to a lesser extent, Firefox. As a user, have have you ever had a site that will only work in IE? Yeah, frustrating. It's because the web dev coded it specifically for IE because IE writes their own standards and doesn't conform.
If it helps, just recognize that Safari is doing what it's supposed to be doing. The problem is in Apple's implimentation of the animation. Software development is often a trade-off between what's ideal and what can be done within external constraints. But yeah, I agree, Apple should find a way around this dilema.
Navigating back (one finger swipe left Magic Mouse) often left a blank page or froze it for 1-2 seconds when rapidly trying to scroll up/down.
I am on Safari 7 (Mavericks) and after adding the developer menu and checking "Disable Caches" it seems every thing is back to normal and even snappier! Hope this helps until further improvements.
As shallow as it sounds, I think Safari is more beautiful with swipe between pages
That's an interesting answer but I'm not sure it's the problem I have on my iPad mini. My problem is hopping from one tab to another to check something and having whole blog comments or forum posts wiped. So if, for example, I write a long comment on a blog and then go to look for a link before I click post, returning to the tab with my comment in it will reload the entire page, thus losing everything I have written. On my PC, pages remain static, pretty much so I can hop from one to another.
To be honest, it's unbelievably annoying. I was hoping there might be some kind of app I could fix it with. I'm using Safari but I'm not running any extensions, I don't even know how to install them on an iPad. ;-)
Any help ideas would be hugely appreciated.
Edited for clarity
I just chatted to a few customer representatives and their best advice to fix this issue was to reinstall os x. I'd rather not do that right now, so until there is a safari update, I'll likely go back to using chrome. The Apple workers I chat with, by the way, never seem to be aware of the issues I experience with my Apple products, or at least they're not supposed to let on that they are. Having one of them tell me they've never heard of an issue that has a thread on here with over 80 replies and 45,000 views is a bit ridiculous.
Christopher Rigby wrote:
"That would imply it's something "gone wrong" in Safari. It isn't. It's how Safari has always behaved and there's no persuading Apple it shouldn't behave that way. Reinstalling Safari won't cure the problem."
I've been using Safari since its inception and your statement is completely incorrect. Why do you think this thread exists? The issue is with how caching is handled in later versions compared with earlier versions. There's also every liklihood that the core OS can affect how caching is dealt with, so your previous comment may also be incorrect.
Do not waste your time reinstalling OSX. This is a Safari issue. It doesn't matter wether the OS is telling it to cache this way or Safari itself, Apple needs to change the behavior. At the very least make this a setting that we can change. It is not a bug with Safari, they designed it this way, Safari behaves this way on my Mac and both my iPhone and iPad.
Exactly Steve. That's what I was saying before. Andy Thornton may have been using Safari since inception, but I've been using it since 2006, and I can say that its behaviour compared with Firefox in doing 'Goback's, is quite different. Safari has always reloaded the page, whereas FF loads direct from cache irrespective of the latest state of the particular page, and is therefore instant.
It IS - as you say - a Safari issue, and only Apple can change its behaviour.
I think you are dismissing this as a perceived delay too easily. When I am on Reddit and click to an imgur image, then 2 finger swipe back, the old reddit page shows briefly, then the entire screen goes white. It will stay white forever, unless I do something like force a reload. However, the page is there - I can click (blindly), and click through a link to another page. So it sounds like your impression of the problem is different from what you describe. This happens every 10 minutes or so, maybe? Maybe 1 out of a few dozen back swipes. It is very annoying.