一、前言

  前端部分的搭建,需要考虑使用哪种模式进行页面之间的跳转交互,

  而项目内的页面交互,不可避免的需要相互之间的数据共享。

  这就引出了本篇博客的目的,一起来谈谈:项目前端部分的构建方式以及数据共享方式。

二、正文

  (一)、搭建前端部分所需要注意的问题

  1)方便性
     结合开发的时间需求和方便性选择适合的前端模式;

  2)性能
     在项目的体量比较大,或者某个页面需要加载较多文件时,会对加载页面所需时间产生影响

  3)浏览器的缓存
     在项目发布后如果文件(css/js/image)有更新,需要用户浏览器清理缓存才会从服务器获取更新后的文件,
     可以通过文件末尾添加时间戳和版本号来避免浏览器优先使用内部缓存文件这样的问题。

  4)文件的目录结构
     是按照文件的类别设置目录结构?还是按照不同页面设置?

     

  (二)、前端搭建的模式选择(多页面模式和单页面模式)

    

图片来源:https://blog.csdn.net/u013291076/article/details/53667382

  1)多页面模式(MPA  Multi-page Application):
    多页面跳转需要刷新所有资源,每个公共资源(js、css等)需选择性重新加载
    页面跳转:使用window.location.href = "./index.html"进行页面间的跳转;
    数据传递:可以使用path?account="123"&password=""路径携带数据传递的方式,或者localstorage、cookie等存储方式

  2)单页面模式(SPA  Single-page Application): 
    只有一张Web页面的应用,是一种从Web服务器加载的富客户端,单页面跳转仅刷新局部资源 ,公共资源(js、css等)仅需加载一次
    页面跳转:使用js中的append/remove或者show/hide的方式来进行页面内容的更换;
    数据传递:可通过全局变量或者参数传递,进行相关数据交互
    

两种模式对比:

页面模式 多页面模式(MPA  Multi-page Application) 单页面模式(SPA  Single-page Application)
页面的组成 多个完整页面,
例如page1.html、page2.html等
由一个初始页面和多个页面模块组成,
例如:index.html和page1.htnl.js、page2.html.js等
公共文件加载 跳转页面前后,js/css/img等公用文件重新加载 js/css/img等公用文件只在加载初始页面时加载,更换页面内容前后无需重新加载
页面跳转/内容更新 页面通过window.location.href = "./index.html"跳转 通过使用js方法,append/remove或者show/hide等方式来进行页面内容的更换
页面跳转/内容更新
所需数据的传递
可以使用路径携带数据传递的方式,例如:http://index.html?account="123"&password=123456"",或者localstorage、cookie等存储方式

直接通过参数传递,或者全局变量的方式进行,因为都是在一个页面的脚本环境下

用户体验 如果单个页面加载的文件相对较大(多),页面切换加载会很慢

页面片段间切换较快,用户体验好,因为初次已经加载好相关文件。但是初次加载页面时需要调整优化,因为加载文件较多

 适用场景  适用于高度追求高度支持搜索引擎的应用  高要求的体验度,追求界面流畅的应用
 转场动画  不容易实现  容易实现
 总结:
单页面模式:相对比较有优势,无论在用户体验还是页面切换的数据传递、页面切换动画,都可以有比较大的操作空间

多页面模式:比较适用于页面跳转较少,数据传递较少的项目中开发,否则使用cookie,localstorage进行数据传递,是一件很可怕而又不稳定的无奈选择

三、结语

前端的明天在框架,得学vue了

前端的单页面模式和多页面模式相关推荐

  1. 【浅入浅出】现代前端框架单页面

    在前端预备:现代前端框架单页面概念这一篇里,作者讲到了单页面,跟前端路由实现,我准备分两篇来记录. 首先,里面提到了一个概念:DOM 直出 简单说就是在浏览器输入网址后发起请求,返回来的 HTML 页 ...

  2. 【前端路由原理--原生JS实现方式】--前后端路由的区别、关于单页面应用与多页面应用、什么是CSR、SSR、SSG、ISP

    前言 本来只是想学习 React-Router v6 ,没有想到,带出了这么多东西.前后端路由有什么区别?SPA与MPA的是什么?在了解到前端路之后又发现单页面于应用与多页面应用的不同之处,以及 .n ...

  3. 新来的前端小姐姐问:Vue路由history模式刷新页面出现404问题

    摘要:vue-router 默认 hash 模式 -- 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载. 本文分享自华为云社区<学习Vue Rou ...

  4. 前端中的单页面应用和多页面应用

    前端中的单页面应用和多页面应用 转载自:https://juejin.im/post/5a0ea4ec6fb9a0450407725c 单页面应用(SinglePage Web Application ...

  5. 前端:你要懂的单页面应用和多页面应用

    单页面应用(SinglePage Web Application,SPA) 只有一张Web页面的应用,是一种从Web服务器加载的富客户端,单页面跳转仅刷新局部资源 ,公共资源(js.css等)仅需加载 ...

  6. 前端修炼の道:第一个 HTML 页面

    往期回顾 在 1.2 节介绍 HTML 语言时讲到: HTML 是一种"超文本标记语言" 它由许多 HTML 标签组成 注意:HTML 标签也称为元素 HTML 页面 一个页面的创 ...

  7. 单页面应用和多页面应用区别

    单页面应用和多页面应用区别 一.多页面应用 每一次页面跳转的时候,服务器都会给返回一个新的html文档,这种类型的网站也就是多页网站,也叫做多页应用. 多页面具有什么优点呢? 首屏时间快 首屏时间叫做 ...

  8. vue单页面应用和多页面应用

    多页应用 每一次页面跳转的时候,后台服务器都会给返回一个新的html文档,这种类型的网站也就是多页网站,也叫做多页应用. 多页应用 为什么多页应用的首屏时间快? 首屏时间叫做页面首个屏幕的内容展现的时 ...

  9. 移动Web单页应用开发实践——页面结构化

    1. 前言 在开发面向现代智能手机的移动Web应用的时候,无法避免一个事实,就是需要开发单页应用(Single Page WebApp).对于不同的系统需求,单页应用的粒度会不同,可能是整个系统都使用 ...

最新文章

  1. JavaScript高级程序设计基本概念
  2. 阿里云引领云原生进化 | 云原生生态周报 Vol. 60
  3. 10代cpu装win7_11代CPU共26款型号全曝光:10核心确定没了
  4. 逆向工程核心原理学习笔记(十):IA-32寄存器基本讲解
  5. 第二节:比较DateTime和DateTimeOffset两种时间类型并介绍Quartz.Net中用到的几类时间形式(定点、四舍五入、倍数、递增)
  6. PWN-PRACTICE-BUUCTF-19
  7. 技术QA:如何安装并启用BITS和WebDAV?
  8. Java即时类| hashCode()方法与示例
  9. jdkjmeter安装与环境变量配置
  10. 我离baidu.com有几跳
  11. 编译自定义的主题theme
  12. matlab fir带通滤波,基于Matlab的FIR带通滤波器设计与实现
  13. Nmap 扫描主机端口
  14. tcl电视显示服务器异常1500,TCL 智能液晶电视常见故障分析检修实例
  15. 2021-03-28
  16. 以太网详解(二)-物理介质(100base-TX等)介绍
  17. UML图 符号的含义
  18. 常用颜色的RGB值及中英文名称对照表
  19. 【Win 10 应用开发】在代码中加载文本资源
  20. 【搜搜李找】如果宠物能上网,那论坛会变成什么样~~

热门文章

  1. 在docker上安装部署tomcat项目 超简单,拿来主义
  2. JAVA用最简单的方法来构建一个高可用的服务端,提升系统可用性
  3. 十进制转化为二进制java代码_【模板小程序】任意长度十进制数转化为二进制(java实现)...
  4. java 捕获异常并存入数据库_java异常处理,报异常的话怎么处理对象值,并持久化到数据库中...
  5. 2022-2028年中国应急救援装备行业市场研究及前瞻分析报告
  6. 自然语言处理课程(二):Jieba分词的原理及实例操作
  7. LeetCode简单题之按照频率将数组升序排序
  8. 左神讲算法——异或的高级操作(两数交换+经典面试题)
  9. NVIDIA A100 GPUs上硬件JPEG解码器和NVIDIA nvJPEG库
  10. PyTorch神经网络集成技术