从现有API构建Web前端

时间:2013-10-18 04:24:55

标签: javascript rest backbone.js

我正在从现有(RESTful)API构建前端Web应用程序。

最好的方法是什么?我假设新的标准方法是通过像backbone.js这样的东西。

我还希望页面是不同的URL,而不是单页面应用程序。也就是说,我猜这是一个不好的做法,请求页面然后启动异步api请求,当我们也可以从服务器加载数据开始,对吧?我应该考虑什么样的架构或技术,以便我可以重用API但不向服务器背靠背发送两个请求,一个用于加载页面,一个用于加载数据?

3 个答案:

答案 0 :(得分:0)

Backbone和其他JavaScript“MV *”框架绝对是高性能事件驱动UI的绝佳选择。您可以使用此设计并具有不同的页面和URL。它使得在给定页面上执行异步操作变得更加容易和快捷,因为您将在JSON模型中拥有相关数据,并在数据更改时视图自动更新的环境中使用发布/订阅模式。此类设计的另一个优点是,您可以将数据放在模型中,而不是遍历DOM以获取数据。

答案 1 :(得分:0)

除了Girardi的回答之外,您对初始页面加载的两个请求的担忧 - 一个用于页面而另一个用于实际数据 - 是一个真正的问题。

其中一个解决方案是将初始数据直接引导到页面中,这样您就可以跳过额外的异步请求。这称为模型引导。例如,您可以放置​​和保存引导模型的其他<script></script>标记:

<script>
    window.I_MODEL = [
        {id: 1, name: "foo"},
        {id: 2, name: "bar"}
    ]
</script>

然后在服务器端构建模型,并借助一些模板机制将序列化模型打印到页面中。

搜索骨干模型引导,这是一个正确的示例:http://ricostacruz.com/backbone-patterns/#bootstrapping_data

答案 2 :(得分:-1)

嗯,首先加载页面然后请求异步数据并不是一个坏习惯。保持模板(html)和数据调用分开,你可以最大限度地利用localStorage,browserCaching的好处。 Backbone不会为您的应用程序注入任何魔力,它只是提供了一个框架来组织您的代码并帮助一次又一次地避免一些样板代码。