仅使用客户端模板和Rest调用的单个HTML站点

时间:2011-05-27 06:20:14

标签: jquery json templates rest mustache

我正在一个高度动态的网站上工作,该网站有大约10个不同的页面(登录,注册,我的服务,我的个人资料等)。

我正在考虑使用javascript模板框架(例如,jquery-temp)并将所有页面存储在一个单独的html文件中。用户交互将触发交换/激活/隐藏不同模板。在服务器端,所有请求都通过rest / json调用进行管理。我认为html将由nginx提供,而json调用将被定向到jetty(java)。

这是一种可行的方法,可能出现什么问题?

谢谢,

编辑 - 我知道怎么做,我想知道从长远来看这是否会导致问题。

2 个答案:

答案 0 :(得分:2)

我最近一直在做类似的事情,而且效果很好。几点意见:

  1. 如果您希望不同的视图具有可链接的网址,并且保持历史记录以便浏览器的后退/前进按钮可以正常工作,那么您需要更加努力地工作。 (虽然你可能不关心那个)
  2. 当用户第一次访问网站时,你有一个很大的前期页面加载 - 可能比分割页面要慢。
  3. 网站缓存没有粒度;如果你在网站的一个页面上更改了一个字符,则需要重新加载整个字符。与之相反,如果您将页面溢出并稍后更改其中一个页面,则其他页面的任何HTTP缓存仍然可以。
  4. 通过AJAX切换模板可能会比标准页面加载略微减少UI反馈,如果连接速度慢,点击常规链接至少会显示页面正在加载,而AJAX调用将会旋转在后台。我不确定这适用于你的情况,因为它听起来你已经预装了所有的HTML并且只是切换哪些位是可见的。在类似的静脉页面中,通过AJAX填充其内容可能会在加载时不那么优雅。
  5. 显然 - 如果用户没有打开javascript,你就搞砸了。我不确定是否有人关心这个,但我想这也可能影响SEO。

答案 1 :(得分:0)

我可以看到的问题:如果您提供来自不同域的模板和数据,跨域请求仍然是一个令人头疼的问题。但您可以使用nginx或专用代理服务器将请求代理到一台服务器或另一台服务器,具体取决于路径,例如,来自example.com/html的htmls和来自example.com/rest的数据。