将Web应用程序基于浏览器AJAX调用是一种很好的做法

时间:2015-09-23 14:19:25

标签: javascript ajax node.js rest model-view-controller

在标准的MVC Web应用程序中,使用ajax调用渲染大部分内容是否可以?

让我们以Facebook为例,他们动态加载大部分内容。 我们应该遵循这种方法吗?我们应采取哪些措施来确保良好的用户体验和绩效?

修改的 让我澄清一下这个问题:

我使用Facebook的例子,因为我正在考虑解决类似于Facebook News Feed的应用程序的问题:它们之间非常相似的大集(几乎无限)实体,控制器无法获取明显的绩效和响应问题。

因此我们将使用ajax调用动态加载项并使用模板引擎进行渲染。

这种方法合理吗?我们该怎么做才能确保良好的用户体验,性能和合理的SEO? (例如,限制同时ajax呼叫的数量等)

3 个答案:

答案 0 :(得分:0)

问题有点模糊,因为我认为基于ajax的网站的用户体验会因网站而异。这也可能不是发布此问题的最佳论坛。

但是在我看来,ajax可以成为改善用户体验的绝佳工具。减少页面刷新,渲染新内容和执行任务而不中断用户当前状态是一大优点。

但是,如果您的网站很复杂并且导航很多,那么ajax可能会成为开发人员和用户的噩梦。

它很可能会导致对JS / JQ的某些依赖,这可能不是一种选择。

答案 1 :(得分:0)

我认为这是一个好主意。但是你需要记住的事情很少。 Javascript总是需要时间来加载。 因此,如果您主要在js中创建dom,那么肯定会让用户感觉网站在初始加载时速度很慢。 只是站在静态HTML是更快。 所以我的想法是主要使用静态html并智能地使用javascript进行dom创建,这样不仅用户感觉js很快 但是服务器资源也很好用。 所以最好的想法是使用两者的智能组合。 当然,ajax调用总是更喜欢通过javascript创建dom,除非你有大量的数据要绑定到你的dom。 简而言之,它取决于您的要求以及资源和目标用户。

答案 2 :(得分:0)

一些好处可能包括:

  • 服务器可以实现api接口,这将允许它与客户端无关
  • 端点更集中,更离散
  • Web客户端可以更容易开发,只要有明确的API规范就可以并行开发

有几个难点可能是:

  • 难以确定每个api端点的重点是什么?应该返回什么数据?
  • 客户端最终会产生许多小的ajax请求,这是许多连接的开销
  • 单个请求失败或加载缓慢时的处理
  • 在渲染api
  • 返回的数据时考虑高性能操作
  • 每个端点缓存 - 即使端点可能非常集中,前端的单个页面视图也可以在逻辑上对应于一组端点