代码之家  ›  专栏  ›  技术社区  ›  user3657540

Youtube有趣的页面加载方法

  •  1
  • user3657540  · 技术社区  · 8 年前

    首先对不起我的英语不好。我会尽量让这个问题变得易懂。这只是为了教育目的:)

    当你在youtube上观看视频并在相关视频中切换到另一个视频时。页面的很多部分都没有更改。因此,如果你更改了本地文件(服务器发送给你时下载到电脑上的页面),你可以看到修改仍在这里。因此,如果你删除了de youtube徽标并访问了另一个视频(通过单击相关的视频)您可以看到视频、标题、描述和相关视频发生更改,但标题没有更改。您可以在开发者控制台中看到(例如在opera中),并可以进行检查。当我们点击一个新的相关视频时,它不会加载一个新页面。让我们解释一下图像

    enter image description here

    1: 您可以选择标题的一个图标

    3: 点击另一个视频,标题仍在修改中

    我的观察:这可能是一种ajax重新加载方法,但(据我所知)你无法更改浏览器栏的url(出于安全原因)。那么youtube是如何实现这一点的呢?

    PD:也许有一种新技术,这是难以置信的普遍。但我想知道如何做到这一点:)

    1 回复  |  直到 8 年前
        1
  •  2
  •   Duncan Thacker    8 年前

    这对于单页应用程序(SPA)来说非常典型。使用HTML5历史API,页面脚本拦截URL的更改(只要它们在同一个域内),并使用视图路由器用新的细节重新呈现页面,包括请求新数据。

    因此,当你从一个视频开始并导航到另一个视频时,浏览器实际上并不是真正的“导航”——正如你所说,它从URL获取新的视频ID,从一些后端服务加载视频的元数据,并呈现适当的页面。