资产预加载和资源提示与HTTP / 2和连接 编辑该页面 连接管理组件)链接HTTP头信息,提高应用程序性能的关键在使用HTTP / 2和预加载功能的现代web浏览器。 链接标题中使用HTTP / 2服务器推送和W3C的资源提示推动资源(例如CSS和JavaScript文件)给客户之前,他们甚至知道他们需要他们。连接还允许使用HTTP 1. x的其他优化: 要求浏览器获取或呈现另一个web页面的背景; 早期的DNS查找,TCP握手或TLS协商。 重要的事情要考虑的是,所有这些HTTP / 2功能需要一个安全的HTTPS连接,即使工作在本地机器上。主要的web服务器(Apache、nginx盒等)的支持,但还可以使用Symfony的码头工人安装和运行时ob娱乐下载由凯文•Dunglas Symfony的社区。欧宝体育平台怎么样ob娱乐下载 1 2 3 4 5 6 7 8 9 10 11 12 13 < ! DOCTYPEhtml><html><头><元字符集=“utf - 8”><标题>我的应用程序< /标题><链接rel=“样式表”href=“/ app.css”>< /头><身体><主要角色=“主要”类=“容器”>< !——……- - >< /主要>< /身体>< /html> 传统的HTTP工作流后,当这个页面提供浏览器将一个请求的HTML页面,另一个请求相关的CSS文件。然而,由于HTTP / 2应用程序就可以开始发送CSS文件内容之前浏览器请求。 要做到这一点,首先安装连接组件: 1 美元作曲家需要symfony /网页链ob娱乐下载接 现在,更新模板使用预加载()树枝函数提供的连接。的“作为”属性是强制性的,因为浏览器需要运用正确的优先级和内容安全策略: 1 2 3 4 <头>< !——……- - ><链接rel=“预”href=”{{预加载(' /应用程序。css,{:‘风格’})}}”>< /头> 如果你重新装载页面,感知性能会提高,因为服务器回应与HTML页面和CSS文件仅当浏览器请求的HTML页面。 请注意 你可以通过包装的预加载一个资产预加载()功能: 1 2 3 4 <头>< !——……- - ><链接rel=“预”href=”{{预加载(资产(“构建/ app.css”))}}”>< /头> 此外,据重点提示规范,你可以信号优先的资源下载使用重要性属性: 1 2 3 4 <头>< !——……- - ><链接rel=“预”href=”{{预加载(' /应用程序。css,{:“风格”,重要性:'低'})}}”>< /头> 链接HTTP头信息添加到响应。当使用预加载()函数在上一个示例中,下面的标题添加到反应:链接< / app.css >;rel = "预加载”;=“风格”根据预加载规范,当一个HTTP / 2服务器检测到原始(HTTP 1. x)响应包含HTTP头,它会自动触发一个推动相关文件在同一HTTP / 2连接。 受欢迎的代理服务和发布商包括ob直播appCloudflare,急剧和Akamai还利用这个特性。这意味着你可以把资源给客户和现在在生产中改进应用程序的性能。 如果你想防止推动但让浏览器预加载资源通过发行提前单独的HTTP请求,使用nopush选择: 1 2 3 4 <头>< !——……- - ><链接rel=“预”href=”{{预加载(' /应用程序。css,{:“风格”,nopush:真正})}}”>< /头> 资源提示使用应用程序来帮助浏览器在决定哪些资源应该下载,预处理或连接到第一。 连接组件提供以下分支函数来发送这些提示: dns_prefetch ():“表示一个来源(如。https://foo.ob直播appcloudfront.net),将被用来获取所需资源,和用户代理应尽早解决”。 preconnect ():“表示一个来源(如。https://www.pdashmedia.com),将被用来获取所需的资源。启动早期连接,包括DNS查找,TCP握手,和可选的TLS协商,允许用户代理面具建立连接的延迟成本高”。 预取():“确定所需的资源,可能是下一个导航,用户代理应该获取,这样用户代理可以提供更快的响应,一旦资源请求在未来”。 prerender ():“确定所需的资源,可能是下一个导航,用户代理应该获取和执行,这样用户代理可以提供更快的响应,一旦资源请求之后”。 组件还支持发送HTTP链接实现与性能和任何联系PSR-13标准。例如,任何链接的HTML规范中定义: 1 2 3 4 5 <头>< !——……- - ><链接rel=“替代”href=”{{链接(' /索引。jsonld”、“备用”)}}”><链接rel=“预”href=”{{预加载(' /应用程序。css,{:“风格”,nopush:真正})}}”>< /头> 前面的代码片段将导致这个HTTP头被发送到客户端:链接:< / index.jsonld >;rel = "替代",< / app.css >;rel = "预加载”;nopush 您也可以将链接添加到HTTP响应直接从控制器和服务: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24日25 / / src /控制器/ BlogController.php名称空间应用程序\控制器;使用ob娱乐下载\包\FrameworkBundle\控制器\AbstractController;使用ob娱乐下载\组件\HttpFoundation\请求;使用ob娱乐下载\组件\HttpFoundation\响应;使用ob娱乐下载\组件\连接\GenericLinkProvider;使用ob娱乐下载\组件\连接\链接;类BlogController扩展AbstractController{公共函数指数(请求美元请求):响应{/ /使用通过addLink () AbstractController提供的快捷方式美元这- >通过addLink (美元请求,新链接(预加载的,' / app.css '));/ /选择如果你不想使用通过addLink()的快捷方式美元linkProvider=美元请求- >属性- >get (“_links”,新GenericLinkProvider ());美元请求- >属性- >集(“_links”,美元linkProvider- >withLink ((新链接(预加载的,' / app.css '))- >withAttribute (“是”,“风格”)));返回美元这- >呈现(“……”);}}