单页应用SPA的优缺点
单页应用的优缺点
1.优点
而单页应用则是一次性把web应用的所有代码(HTML,JavaScript和CSS)全部请求过来,有时候考虑到首屏加载太慢会按需加载。这样一来,以后用户的每一个动作都不会重新加载页面(即不用再问服务器要页面的HTML,css和js代码),取而代之的是利用 JavaScript 动态的变换HTML的内容(这不需要和服务器交互,除非数据是动态,那么只需要问服务器要数据即可)。单页应用优点的小小总结:
1.分离前后端关注点,前端负责界面显示,后端负责数据存储和计算,减轻服务器压力,服务器只用出数据就可以,而且不会把前后端的逻辑混杂在一起;
2.API共享,后端API通用化,服务如果是多端的(浏览器端、Android、iOS、微信等),单页应用的模式便于你在多个端共用 API,可以显著减少服务端的工作量;
3.用户体验好、快,内容的改变不需要重新加载,提升了用户体验;
4.前端组件化,前端开发不再以页面为单位,更多地采用组件化的思想,代码结构和组织方式更加规范化,便于修改和调整。
2.缺点
单页应用缺点的小小总结:
1.首次加载耗时较多,需加载大量的资源
2.导航不可用,由于单页Web应用在一个页面中显示所有的内容,所以不能使用浏览器的前进后退功能
3.对搜索引擎(SEO)不友好
原因:单页应用实际是把视图(View)渲染从Server交给浏览器,Server只提供JSON格式数据,视图和内容都是通过本地JavaScript来组织和渲染。而搜索搜索引擎抓取的内容,需要有完整的HTML和内容(搜索引擎只认识html里的内容,不认识js的内容)单页应用架构的站点,并不能很好的支持搜索,会导致单页应用做出来的网页在百度和谷歌上的排名差。
单页应用SPA的优缺点相关推荐
- Vue单页应用(SPA)及其优缺点
一.什么是单页面应用和多页应用? 单页应用:只有一个主页面的应用,一开始只需要加载一次js.css等相关资源.单页应用跳转,就是使用路由跳转切换相关组件,仅刷新局部资源. 多页应用:多个独立的页面的应 ...
- 单页应用 (SPA)
1.什么是单页应用? 单页Web应用(single page web application,SPA),就是只有一张Web页面的应用,是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的W ...
- 单页面应用SPA的优缺点
单页面应用SPA的优缺点
- 基于jQuery/zepto的单页应用(SPA)搭建方案
这里介绍一个基于jquery或zepto的单页面应用方案,遵循尽可能简单的原则,使大家一目了然,只需配置一个路由,之后完全按照jq日常写法即可完成.可做学习使用,也可修改后用于一些业务逻辑简单的spa ...
- 前端学习(1510):单页应用SPA实现原理
- 前端学习(1509):单页应用SPA特点
- 单页(SPA)首页白屏优化
背景:由于目前线上版本的h5加载一直很慢,于是趁着最近有空就打算优化一下,首先打开network分析影响加载速度的文件有哪些. 看原文件大小有接近1.4m,不能忍!!! 注意: 1.博主这里用的vue ...
- 单页应用的优缺点_单页和多页应用程序之间的优缺点
单页应用的优缺点 Currently, there are two ways of building websites: as multi-page applications (MPAs) or as ...
- api存在csrf攻击吗_使用rest api防止单页应用上的csrf攻击
api存在csrf攻击吗 tl;dr - If your SPA uses a private REST API, use CORS and a CSRF Token header. If your ...
最新文章
- 新增的querySelector、querySelectorAll测试
- 【错误记录】jar 执行错误 ( java.lang.UnsupportedClassVersionError: Unsupported major.minor version 52.0 )
- QT导入libcurl
- 算法那么重要,你还不会?ACM金牌选手教你学习数据结构与算法
- 随机信号的傅里叶分析
- P3389-[模板]高斯消元法
- java vm art_Android虚拟机art流程:JavaVM 和 JNIEnv 的初始化 - 神农笔记
- VS 2012 单元测试简单配置
- iOS研发助手DoraemonKit技术实现之Crash查看
- sr650安装linux网卡驱动,SR650安装Windows2016添加RAID卡驱动
- httpclient-4.3.6工具类,方便直接使用
- plc和c语言和cnc,CNC是什么意思? CNC 和 PLC的区别?
- log4j2的一些配置,为某个类某个方法单独文件打印日志,定时删除日志和springboot的logback日志单独类打印
- 软件测试 - 测试基础知识
- css实现渐变色字体
- html文字加描边效果,怎么用css给文字加描边?
- arm的2级页表在Linux内核创建过程解析
- C语言:输出100-200之间的素数
- 【Hbuilder】Hbuilder 原生App-云打包,报错需要打包校验
- 抓取国外网站数据合法吗?法律分析