多页面与单页面应用的区别

news/2024/7/10 0:38:49 标签: vue, html

单页面,顾名思义只有一个界面。

界面是通过URL来定位的,所以单页面应用从头到尾它的html地址都是不变的,注意哦,是html地址,而不是URL地址,这两者还是有点区别的。html地址是截止到.html的界面地址,比如:http://about.html#setting这个地址中,html地址是http://about.html,而完整的URL是http://about.html#setting

而多页面应用,顾名思义就是多个界面间的跳转,会伴随着html地址的改变。

在单页面应用中,通常是由一个外部框架和一个一个组件组成的,界面之间的切换其实就是组件的移除和新组建的添加。

在多页面中,则可以看到导航栏中地址的变化,是从一个完整的页面跳转到另一个完整的页面(注意区分页面和界面)。

对比项多页应用模式MPA单页应用模式SPA
应用构成由多个完整页面构成一个外壳页面和多个页面片段构成
跳转方式页面之间的跳转是从一个页面跳转到另一个页面页面片段之间的跳转是把一个页面片段删除或隐藏,加载另一个页面片段并显示出来。这是片段之间的模拟跳转,并没有开壳页面
跳转后公共资源是否重新加载
URL模式http://xxx/page1.htmlhttp://xxx/page2.htmlhttp://xxx/shell.html#page1http://xxx/shell.html#page2
用户体验页面间切换加载慢,不流畅,用户体验差,特别是在移动设备上页面片段间的切换快,用户体验好,包括在移动设备上
能否实现转场动画无法实现容易实现(手机app动效)
页面间传递数据依赖URLcookie或者localstorage,实现麻烦因为在一个页面内,页面间传递数据很容易实现(这里是我补充,父子之间传值,或html" title=vue>vuexstorage之类)
搜索引擎优化(SEO可以直接做需要单独方案做,有点麻烦
特别适用的范围需要对搜索引擎友好的网站对体验要求高的应用,特别是移动应用
开发难度低一些,框架选择容易高一些,需要专门的框架来降低这种模式的开发难度

http://www.niftyadmin.cn/n/5180128.html

相关文章

CSS3 中 transition 和 animation 的属性分别有哪些

Transition 属性: ​​transition​​ 属性用于定义元素在状态改变时从一个样式转换到另一个样式的过渡效果。它包含以下几个属性: • ​​transition-property​​:指定过渡效果应用的 CSS 属性名称,多个属性可以用逗号分隔。 •…

【数据结构与算法】链表与队列

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

android设备串口通信

Android串口通讯SerialPort(使用篇)_android串口通信-CSDN博客 usb通信: USB 通信: Android 提供了一套标准的 USB 接口支持,包括 USB 主机模式和 USB 设备模式。在某些情况下,如果你使用的 USB 设备符合 Android 的 USB 设备规范…

spring cloud之服务通信

openfeign(*) 简介 官网:https://cloud.spring.io/spring-cloud-openfeign/reference/html/Feign是一个声明式的伪HTTP客户端(底层使用RestTemplate),它使编写web服务客户端变得更容易。使用feign,只需要创建一个接口并对其添加注解。它具有…

服务器CPU高居不下,JAVA线程占用如何排查

1. 查看占用cpu占用过高进程的pid 使用 top名称查看 这里可以看的出来进程是20943 2. 查看该进程中哪个线程占用大量 CPU ps -mp 20943 -o THREAD,tid,time | grep $(ps -mp 20943 -o THREAD,tid,time |awk NR>2 {print $2}|sort -nr|head -1)|head -1 root 1.0 1…

Python使用Mechanize库完成自动化爬虫程序

Mechanize是一个Python第三方库,它可以模拟浏览器的行为,实现自动化的网页访问、表单填写、提交等操作。下面是一个使用Mechanize库编写的爬虫的例子,它可以爬取百度搜索结果页面的标题和链接: import mechanize from bs4 import …

前端如何把图片url地址https://url转成base64

前端如何把图片url地址https://url转成base64 一、直接上代码 一、直接上代码 async getImgImg() {let url await this.base64(this.From.imageData) }, base64(url) {return new Promise(resolve > {const image new Image()// 先设置图片跨域属性image.cros…

C++命名空间,函数重载

一、C命名空间 使用过C的人都知道在引入<iostream>头文件后需要加上这样一行代码 using namespace std; 但是对于初学者来说不仔细研究一下可能都不知道为什么需要这样一行代码&#xff0c;接下来将对其进行解释&#xff0c;引入命名空间的概念 C在C的基础上增加了命…