1

我从事单页 Web 应用程序 (SPA) 已经有一段时间了。前端使用 BackboneJS/Marionette,后端是 Java Spring :(。但是我发现可能很慢的是在应用程序启动时,向不同的 API 端点发出了许多请求,以填充应用程序各个部分的数据。我觉得这很慢?虽然它们是 AJAX 请求,因此是异步完成的?最佳做法是什么?起初我在想我以某种方式将所有内容组合成一个巨大的请求,但不确定这是否是一个好主意。代码示例也很好。

4

2 回答 2

1

由于您知道页面加载时应该有什么,因此所有这些数据都应该与您的默认 html 以及用它初始化的对象一起提供。我使用 AMD,所以我会这样做,

<script data-main="app" src="/lib/require.js"></script>
<script>
define('load', function(){return {
    mymodel : <c:out value="${mymodel}" default="{}" />,
        ...
};});
</script>

应用程序.js:

require([ 'MyModel', 'load'], function(MyModel, load) {
  var myModel = new MyModel(load.mymodel);
   ...
})
于 2013-07-02T15:31:54.257 回答
0

一个巨大的要求不是一个坏主意。无论如何,出于同步目的,您可能需要此功能。

将任何动态内容放入 HTML 会阻止您缓存前端代码。您将无法静态部署前端 - 例如打包到移动应用程序中。它也可能会减慢初始渲染时间,尽管由于需要两个请求而不是一个请求,因此应用程序整体加载时间会稍长一些。

于 2014-05-05T01:43:37.110 回答