Skip to content

JAJX(Asynchronous Javascript And XML)

XML:可扩展的标记语言,用自定义标签来存储数据。

json
[
  {
    "name": "Tom",
    "age": 18,
    "score": {
      "math": 100
    }
  },
  {
    "name": "Jack",
    "age": 19,
    "score": {
      "math": 99
    }
  }
]
xml
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <student>
    <name>Tom</name>
    <age>18</age>
    <score>
      <math>100</math>
    </score>
  </student>
  <student>
    <name>Jack</name>
    <age>20</age>
    <score>
      <math>99</math>
    </score>
  </student>
</root>

项目的架构模型

  • 纯服务器渲染(需要做SEO优化或者技术氛围问题)

    • 服务器接收到请求后找到对应的页面,获取到页面的代码

    • 根据需求从数据库中获取到需要动态展示的数据

    • 把页面和数据结合在一起进行渲染,生成有结构有内容的完整页面(服务端进行渲染)

    • 把渲染玩的页面返回给客户端

    特点:

    • 我们看到的内容都是在服务器端渲染完的,客户端只是把所有渲染好的内容呈现在页面中而已, 然而第一次渲染完,页面中的某部分数据需要更新了,需要让服务器整体重新渲染一次,把最新 的页面返回给客户端,客户端只能整体刷新页面展示最新的内容,性能和体验等都非常差,而且 服务器压力也很大。由于内容在服务器端就已经渲染好了,页面渲染完后,在页面的源代码中 可以看到内容,有利于 SEO 优化。
  • 混编模式,部分内容服务器渲染,部分内容客户端渲染。

    • 骨架屏:首屏内容服务器渲染,其余内容都是客户端基于 AJAX 获取。

      • 服务器接收到请求后,把需要的页面代码返回给客户端

      • 客户端第一次渲染完,只有结构和样式,没有数据

      • 客户端通过 AJAX 向服务器发请求获取数据

      • 服务器接收获取数据请求后,把需要的数据找到并返回给客户端

      • 客户端填充页面数据

      特点:

      • 可以实现页面中内容的局部刷新,而且渲染操作交给客户端来操作,体验好,减轻了服务器 压力。

      • 开始可以只把部分区域的数据获取到,滚动到某个区域后,再请求对应的数据,实现数据的 分批异步加载,提高性能体验

      • 由客户端渲染的内容没有出现在源代码中,不利于 SE0 优化

  • 客户端和服务器端完全分离,目前最常见的模型。

    • Vue

    • React

  • Vue / React 在服务器端基于 Node 来渲染