2015-03-24 184 views
1

我想呈现我的页面客户端,以帮助保持负载关闭服务器,并保持交通。我知道第一次调用服务器通常会导致服务器必须呈现请求的页面,然后将该页面发送给用户。当用户与页面交互时,JavaScript接管路由,路由将请求发送到服务器以获得特定的视图,然后通过客户端上的javascript更新。客户端渲染和跳过服务器渲染方法?

我在想如果这种方法存在与否,如果它是可行的。

比方说,我希望去的地址:

www.example.com/about 

有其高度的​​作为参数传递到HTML页面/ JavaScript代码从服务器(同样,供应www.example.com/)的方法。当客户端准备好客户端时,它会向服务器发送一个请求,请求​​数据,并在响应中更新客户端视图。这意味着完全跳过服务器端渲染。

还是我疯了?

+0

因为它被标记为Angular,我假设你知道它,对吧? 然后检查一下Angular-router,它就是那个模块。 – MrE 2015-03-24 23:37:22

+0

@MrE确实!我标记为我通常使用这些平台,这篇文章可能会让那些开发者感兴趣。是的,我知道它并没有真正与他们有任何关系。 – 2015-03-24 23:38:22

+1

这里的一个例子: https://scotch.io/tutorials/angular-routing-using-ui-router – MrE 2015-03-24 23:38:44

回答

1

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

例如,我通常配置的网络服务器AngularJS的方式是有以下途径:

  • /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,并说“我知道约​​,我将转到该页面!”。

当然,通过“转到该页面”,我的意思是“获取该页面的部分HTML,并通过AJAX获取任何数据”。没有可见的页面刷新/更改发生。

+0

啊所以它会自动检查url中的某些部分在加载。问题是;它会首先显示原始索引内容(就好像用户在那里开始),然后*然后*请求'/ about'页面?如果是这样,我猜它会导致闪烁的效果,因为它更新? – 2015-03-24 23:43:38

+0

是的,它可能有点闪烁,但它通常不是很明显。事实上,你通常首先看到的是“shell/skeleton”UI,然后在加载主内容区域时被填充。对于大多数用例来说,这通常足够快。 – GregL 2015-03-24 23:47:22