关于 Safari 前进后退网页刷新机制的问题

2015-05-31 22:19:44 +08:00
 yescola
在 Safari 上使用双指前后滑动可以 前进/后退 页面。但是每次滑动到前一个页面时,地址栏都会出现进度条重新刷新网站(但是网页上内容的位置仍然停留在之前的位置)。

那么问题来了:

1、假设网速很慢,每次回到前一个页面都需要刷新的话,会不会影响用户体验?

2、为什么 Safari 不考虑将之前浏览的某个数量级的网页缓存到内存或者 SSD 当中?这不是可以提高用户感受吗?

3、目前看来,每次回到前一个页面时的刷新,会造成短暂的页面内容无法滚动或操作,是否有较好的办法可以弥补这个缺憾?

4、Apple 为什么要这样设计 Safari ?(其实这应该是对前三个问题的总结。。)

感谢各位。
10893 次点击
所在节点    macOS
9 条回复
zhizhuo
2015-06-01 00:31:46 +08:00
因为美国网速快.
XerWandeRer
2015-06-01 01:43:37 +08:00
1. 会。

2. 有: https://www.dropbox.com/s/1fr947ccdhrxzvw/out.gif?dl=0

3. 卸载 Adblock: https://discussions.apple.com/thread/4161818?tstart=0 (我为什么没有安装 Adblock: http://weibo.com/1633649882/CfGLEspdy?from=page_1005051633649882_profile&wvr=6&mod=weibotime&type=comment)

4. Apple:怪我咯!

楼主也是重庆的,能不能让学生党来参观下贵司呀?
XerWandeRer
2015-06-01 01:49:59 +08:00
呀… Dropbox 分享 gif 太不方便了: http://wanderer-miscellaneous.qiniudn.com/out.gif
lawdoge
2015-06-01 02:47:12 +08:00
其实Safari的逻辑应该是:
Safari本身会缓存网页,但是每次后退需要确认一下缓存的网页和真实的网页有没有发生了更改(毕竟你的后退只是想看前一个网页而不是一个过期的网页),在Top Site的快照中也会有这种检测。如果你停在一个网页很久都没有后退,可能后退就要重新加载了。迅速的浏览的话应该是直接加载缓存

那个进度条应该是safari监测网页有没有修改的进度条,如果没有更改很快就略过了。
lzfxxx
2015-06-01 03:36:38 +08:00
@XerWandeRer 我试了一下卸载Adblock并没有用啊,V2本来后退就不会有条,别的本来有条的照样有。。我觉得4L说的挺有道理的,但如果照他说的,卸载adb就不应该会有用啊
paradoxs
2015-06-01 08:02:01 +08:00
美国网速那么快,人家根本不考虑这个问题。
also24
2015-06-01 10:30:13 +08:00
我的 Safari 刷 V2 似乎一直有问题,后退以后,网页显示的内容和实际的焦点位置有偏移。
会造成对着某个帖子的标题点下去,但是实际却点到了另个帖子的发帖人


而且缓存的算法似乎也有问题:

1、访问 V2 主页
2、点进某个帖子
3、返回 V2 主页
4、点击 V2 导航栏刷新主页
5、点进某个帖子
6、返回 V2 主页

此时有八成以上的几率,显示的是步骤 1 时的主页内容。
XerWandeRer
2015-06-01 10:44:13 +08:00
@lzfxxx 我后来稍微想了一下情况肯定也不会是这么简单。然后又做了一些搜索,看到了这个: https://www.webkit.org/blog/427/webkit-page-cache-i-the-basics/

如果还要深究的话,最好是自己写一些用例测试一下咯~
lzfxxx
2015-06-01 11:33:32 +08:00
@XerWandeRer 嗯,确实根据网站不同情况多变,暂时也并没有可靠的解决方案

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/195152

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX