AJAX弊端

做者:周卓卓
连接:https://www.zhihu.com/question/20410763/answer/117742113
来源:知乎
著做权归做者全部,转载请联系做者得到受权。

题主的问题能够从新解读为:
  1. 何时应该用 Ajax
  2. 如何应对使用 Ajax 技术致使的程序复杂性

何时应该用 Ajax
先看看 Ajax 和传统 Server Centri Web 架构的区别。

Ajax本质上是一种浏览器端技术,从图中能够看出,传统 Server Centri Web 架构的最大区别是将大量业务逻辑从服务器端移到浏览器。

好处是当数据发生变动时,只须要从新渲染相关的 HTML,而不须要加载整个页面。 坏处是使用大量 Ajax 的项目与其说是B/S架构,不如说是C/S架构,天然也具有C/S架构的特色,在浏览器环境下,某些特色会成为缺陷。

好比说 Ajax 要求业务逻辑必须先于数据加载,浏览器必须加载完相关 js 文件后才能开始加载数据,所以第一次页面 ready 的时间会晚于传统 Web 页面。不过这样的问题也有不少解决方案,例如 Application Cache 能够将文件保存在浏览器里,避免反复加载相同的脚本和资源文件。

因此结论是: 是否应该使用 Ajax 取决于业务流程和技术栈

那怎么断定一个业务流程是否适合 Ajax 呢,我举个例子 。

假如你须要在微信里接入一个卖水果的活动,流程能够以下设计:




如何应对使用 Ajax 技术致使的程序复杂性

澄清一点:Ajax 自己并无加剧程序复杂性。

程序变得复杂的缘由是:因为 Ajax 要求业务逻辑被移动到浏览器端,所以浏览器端为了应对更多业务逻辑变得复杂。

既然是问题是程序复杂性,那么解决方案固然来自软件工程:

1. 重浏览器端的 WebApp 应用,和客户端开发同样,善用 MVC/MVV ( )这样的软件设计模式,对复杂度的简化,使程序结构更加直观。 现代 Web Frameworks 都在执行这一理念。若是须要作一个 WebApp,从 React、Vue.js、Angular.js 等框架入手都是最好的选择。 2. 使用 Ajax 优化传统 Server Centri Web 的体验 无非是结构化的程序设计方式,相信全部 CS 出身的开发者都能游刃有余。 再有就是合理使用第三方库,例如使用 jQuery、underscore.js 这样的工具性第三方库能够下降对 DOM 操做的难度,并应对浏览器兼容性问题。
相关文章
相关标签/搜索