页面渲染依赖于异步调用

时间:2016-07-22 19:02:42

标签: javascript html

通常在调用异步api来获取页面依赖的数据时,我会:

  1. 提供html
  2. 使用客户端的ajax获取数据
  3. 如有必要,显示某种加载文本/动画
  4. 数据可用时呈现内容
  5. 但是,如果我想在页面加载时呈现所有html,那么有没有什么好的理由不仅仅是从服务器上做(psuedo-code):

    app.get('/', function(req, res) {
      _apiService.getData()
        .then(function(data) {
          //build html from template or whatever using data
          res.send(html);
        })
        .catch(function(err) {
          res.send(errorPage);
        });
    });
    

    以更传统,同步,获取数据的方式然后返回东西?

    显然,没有花哨的加载图标,而是等待页面加载的时间,但你得到完全渲染的html和简单回报。

    *问题假设需要async api

1 个答案:

答案 0 :(得分:1)

这取决于您所服务的数据类型。

如果您提供经常更改的数据(比用户重新加载页面更频繁),AJAX是一个理想的解决方案。

例如,社交媒体数据:用户可能会在其他用户等待查看时发布内容。因此,理想情况下,您的应用程序会在可用时立即检索该数据。

否则,从后端加载它是一个更简单的选项,特别是对于像博客文章这样的数据:新的博客帖子不会每隔几分钟就会出现,而少数用户会在一个人变得可用时打开页面,因此您的应用程序无需在可用时立即加载它。