2017-08-31 64 views
0

首先抱歉我的英语不好。我会尽力使问题变得可以理解。这仅仅适用于教育宗旨:)Youtube有趣的方法页面LOAD

当你在youtube上观看视频并转换到相关视频时,页面的很多部分都不显示“改变。因此,如果您更改本地文件(服务器发送给您的页面下载到您的PC的页面),您可以看到修改仍在此处。因此,如果您删除de youtube徽标并访问另一个视频(通过点击相关视频),您会看到视频,标题,说明和相关视频发生变化,但没有标题。你可以在开发者控制台中看到(例如在opera中),你可以检查它。当我们点击一​​个新的相关视频就不要“T加载一个新的页面中,您讲解图像

enter image description here

1:你选择头的一个图标

2:你从它删除代码

3:单击另一个视频和头仍与修改

我的意见:这可能是一个AJAX重载方法,但(我知道),你可以“T改变浏览器栏中的网址(出于安全原因)。那么YouTube如何实现这一目标?

PD:也许有一种新技术,这是不可思议的共同点。但我想知道如何做到这一点:)

回答

1

这是单页应用程序(SPA)的相当典型。使用HTML5历史记录API,页面脚本拦截器会更改URL(只要它们位于同一个域中),并使用View路由器使用新的详细信息重新渲染页面,包括请求新数据。

因此,当您从一个视频开始导航到另一个视频时,浏览器实际上并不实际“导航” - 就像您说的那样,它会从URL中获取新视频ID,从某些视频加载元数据后端服务并呈现相应的页面。

YouTube似乎是使用AngularJS的某个版本构建的(这很有意义,因为Google编写了Angular框架),所以如果您想了解更多信息,可以阅读如何构建Angular应用程序,但大多数现代Web应用程序都是建立在类似的基础上。这通常是一个好主意,因为与更新需要更改的位相比,重新加载整个页面非常昂贵且速度较慢。