【发布时间】:2014-12-16 22:19:44
【问题描述】:
这是一个场景:Page1.html 和 page2.html 是相同的,除了一个单词的变化。
page1.html
<html><head></head><body>
Lorem ipsum *one*
...Stuff here...
<a href="page2.html">click me</a>
...Stuff here...
</body></html>
page2.html
<html><head></head><body>
Lorem ipsum *two*
...Stuff here...
<a href="page1.html">click me</a>
...Stuff here...
</body></html>
如您所见,除了page2.html 中的*one* 与*two* 交换之外,两个页面中的所有内容都相同
现在,假设访问者访问了page1.html,并点击了a href 链接,浏览器会重新渲染整个 DOM 还是简单地检测到更改的单词并对其进行修改?
这显然是特定于实现的,我感兴趣的是主流浏览器(Chrome、Firefox、Opera、Safari、IE...)的答案
【问题讨论】:
-
整个页面将被重新加载
-
Ajax 是一种流行的选择,可以进行有针对性的更改,同时避免全面重新加载
-
假设不涉及 JS 代码,那么是的,单击链接会使浏览器“离开”当前页面,并加载链接所针对的任何页面。
-
要知道只有页面的一部分发生了变化,需要客户端完整地检索它......所以不妨完全渲染它。
-
在我看来,这听起来像是一个相当简单的浏览器优化(“只要正在下载的 html 页面中的字节与用户当前看到的 html 页面中的字节匹配,不要重新渲染那部分”),你们确定没有浏览器这样做吗?这是为什么呢?