客户端渲染和跳过服务器渲染方法?

时间:2015-03-24 23:24:36

标签: javascript angularjs node.js template-engine

我想在客户端呈现我的页面,以帮助减轻服务器负载并降低流量。我知道第一次调用服务器通常会导致服务器必须呈现所请求的页面,然后将该页面发送给用户。当用户与页面交互时,javascript接管路由,路由会将请求发送到服务器以获取特定视图,然后通过客户端上的javascript更新。

我在想是否存在这种方法,是否可行。

假设我想去地址:

www.example.com/about

是否有一种方法将/about作为参数附加到服务器的html页面/ javascript代码(同样服务www.example.com/)。当dom在客户端上准备就绪时,它会向服务器发送/about数据的请求,该响应会更新客户端视图。这意味着完全跳过服务器端渲染。

还是我疯了?

1 个答案:

答案 0 :(得分:1)

不,你不是疯了。这是大多数单页面应用程序(SPA)框架的方式,如AngularJS的工作方式。

例如,我通常为AngularJS配置Web服务器的方式是使用以下路由:

  • /pub/<relative_file_path>只提供<relative_file_path>指定的静态文件,例如所有JS,HTML部分和CSS。
  • /api/<whatever>是客户端通过AJAX实时访问的所有端点
  • 其他所有内容只返回index.html,这是一个静态文件,其中包含对JS,CSS和标记的引用的整个页面。

因此,当您转到www.example.com/about时,您将获得index.html页面,该页面告诉浏览器下载整个应用程序的JS,其中包括客户端路由配置。应用程序启动后,它会看到该位置为www.example.com/about,并说“我知道/about,我会转到该页面!&#34;。

当然,通过&#34;转到那个页面&#34;,我的意思是&#34;获取该页面的部分HTML,并通过AJAX&#34;获取任何数据。没有可见的页面刷新/更改。