客户端渲染和跳过服务器渲染的方法?
我想呈现我的页面客户端,以帮助保持负载closures服务器,并保持交通。 我知道,第一次调用服务器通常会导致服务器必须呈现请求的页面,然后将该页面发送给用户。 当用户与页面交互时,JavaScript接pipe路由,路由将请求发送到服务器以获得特定的视图,然后通过客户端上的javascript进行更新。
我在想这个方法是否存在,是否可行。
比方说,我想去的地址:
www.example.com/about
是否有一种方法将/about
作为参数附加到服务器的html页面/ javascript代码(与www.example.com/
相同)。 当客户端准备好客户端时,它向服务器发送一个/about
数据的请求,其中响应更新客户端的视图。 这将意味着完全跳过服务器端渲染。
还是我疯了?
不,你不是疯了。 这是大多数单页面应用程序(SPA)框架(如AngularJS)的工作方式。
例如,我通常为AngularJSconfiguration一个Web服务器的方式是拥有以下路由:
-
/pub/<relative_file_path>
只提供/pub/<relative_file_path>
指定的静态文件,如所有JS,HTML partials和CSS。 -
/api/<whatever>
是客户端通过AJAX实时访问的所有端点 - 其他的只是返回
index.html
,这是一个静态文件,包含整个页面,引用JS,CSS和标记。
因此,当您访问www.example.com/about
,您将获得index.html
页面,该页面告诉浏览器为整个应用程序下载JS,其中包括客户端路由configuration。 一旦应用程序启动,它会看到该位置是www.example.com/about
,并说:“我知道/about
,我会去那个页面!”。
当然,通过“进入该页面”,我的意思是“获取该页面的部分HTML,并通过AJAX获取任何数据”。 没有可见的页面刷新/更改发生。