开发
web-frontend
other
Web

网页发展史

静态内容网页

所有的内容都是预习写好在了HTML中,不会改变

动态内容网页

前后端不分离

Template Engine 模版引擎

Java

  • Velocity
  • JSP
  • Freemarker
  • Thymeleaf

JavaScript

  • EJS

通过将模板引擎中定义的特定模版转化成HTML字符串 最终返回给浏览器

SSR 服务端渲染

Server Side Rendering

通过将模板引擎中定义的特定模版转化成HTML字符串是发生在服务端的

在浏览器(客户端)拿到的就是完整的HTML(完整的网页)

Router 后端路由

Back End Router

MPA 多页面应用

Multiple Page Application

一个页面就是一个html

前后端分离

AJAX

Asynchronous JavaScript And XML

实现网页中的部分刷新

通过JavaScript的异步编程 以及 XML的文件传输格式,实现前后端交互

CSR 客户端渲染

Client Side Rendering

最初浏览器拿到的只是一个空白的HTML文件,然后通过解析执行JS文件,通过AJAX发起异步请求获取数据,将数据放入视图后,再调用DOM API将视图挂载到页面上。

Router 前端路由

Front End Router

  • hash路由
  • history路由

SPA 单页面应用

Single Page Application

一个网站只有一个html文件,最终的页面切换是通过前端路由以及AJAX来实现的异步刷新

访问顺序

静态网页访问顺序

浏览器 --》Web服务器(返回的就是完整的HTML、CSS、JS)

动态网页访问顺序

前后端不分离

浏览器 --》Web服务器(模版引擎利用服务端渲染构成完整的HTML,返回的就是完整的HTML、以及CSS、JS)

前后端分离

浏览器 --》前端服务器 (拿回来不完整的HTML,以及CSS、JS)

<!DOCTYPE html>
 
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
		<div id="app"></div>
</body>
 
</html>

浏览器执行JS脚本 --》 发起AJAX请求 --〉后端服务器拿数据 (JSON)

浏览器拿到数据 --》 执行JS脚本 --〉把数据放入视图中 --》 通过DOM API 渲染视图