有一天,你们人类不满足网页只是一些文字和图片的展示,希望页面上可以有更多功能。比如点击一个按钮,弹一个窗口或者改变页面上某些内容。为了实现这种功能,就创造了一门脚本语言,逐步升级演化成了 JavaScript 这门语言。
JavaScript 为页面提供更多功能,是页面交互功能的基础语言。此外它的语言规范和引擎还被用于其他领域,比如 Node 等。
人类为了让自己页面功能更加丰富,使用了大量的 JavaScript,并且写了非常多的代码。这时候发现不同浏览器对 JavaScript 的支持程度非常不统一,而且原生 JavaScript 实现某些看起来很简单的功能都很麻烦。
于是 jQuery 就把这些兼容性问题统一,并封装了大量的 API,可以让你非常简单就实现很多功能。jQuery 屏蔽了浏览器之间的兼容性问题,针对常用功能封装了大量的 API,并支持插件机制,让你写 JS 的效率很高,质量很好。
简单的页面上的交互再次不满足人类的需求,比如一个资料填写表单,需要填写一个名称,这个名称还必须不能跟之前的重复。校验这个名称不能重复,就需要把数据提交上去,与服务器端数据交互的方法就是 form 提交表单。这时候需要用户填完所有的表单,点击『确定』之后提交校验。如果此时名称被占用就悲剧了。解决这个问题的方案关键点在数据交互上面。最好的解决方案应该是输入完名字之后,就自动去吧数据发给后端,然后拿到结果并提示给用户,而不是统一提交。
于是人类就想出了一套新的数据交互方案,即无刷新的异步请求,名字叫 Ajax。通过 Ajax 可以通过 JS 与后端接口进行数据交互,而不会影响当前页面。
当接口返回『被占用』的时候,JS 在页面上给个提示就可以很好的实现了。Ajax 技术提供了一种新的前后端数据交互方式,不需要刷新页面,而且不阻塞页面执行流程,异步的去请求去获取、交互数据。一开始只是通过 Ajax 异步发一个请求,数据就是一个简单的用户名称,所以直接按照字符串发过去就好了。后来需要 Ajax 发送的数据越来越多,比如一整张表单。
这时候就需要有一套规则来描述更复杂的数据,一开始估计就是用一些字符分割拼起来,再后来人类用 xml 来描述,发现解析还是挺麻烦的,于是就基于 JavaScript 的数据类型创造了 JSON 这种数据描述格式,很简单的就可以描述很复杂的数据。
同时独立于语言,这样就可以在多种语言内使用。JSON 用来描述前后端数据交互的内容格式,有了 JSON 这样的一套统一的描述规则,前后端解析数据的成本变低,使用非常简单。JSON 属于 JavaScript 的一个子集。这就是上面几个关键词的关系和用途。