什么是单页应用?
单页应用是指在浏览器中运行的应用,使用期间不会重新加载页面。
那么单页应用与传统网站的区别又是什么呢?
传统网站用户的操作会重绘整张页面,浏览器从服务器获取数据时,页面会闪烁,然后重绘页面上所有的东西。当页面很大,服务器又繁忙时,这种闪烁会持续几秒钟甚至更长时间,造成用户糟糕的体验。
那么单页面应用呢?单页面应用会尽可能把工作数据和处理过程从服务器端转移到浏览器端,将响应时间减少。单页面应用在本地拥有大多数需要决策判断的数据和业务逻辑,因此是很快的。
还有单页面和网站一样可以即时更新并且用户不用做任何事,但是桌面应用则需要安装新版本以及管理访问的权限。单页应用是运行在现代HTML5浏览器上,在任何操作系统上运行。
那么单页应用的运行过程是怎样的呢?单页应用一开始加载必要的HTML、CSS、JavaScript,之后所有的操作都是在这张页面上完成,一切有JavaScript控制,因此单页应用往往包含大量的JavaScript,复杂度很高,所以需要模块化的开发和设计。
最后就是单页面的优缺点分别是什么呢?
优点:
1、无刷新体验
路由分发直接在浏览器端完成,页面是不刷新,对用户的响应非常及时,提升了用户体验
2、 前端组件化
前端开发不再以页面为单位,更多地采用组件化的思想,代码结构和组织方式更加规范化,便于修改和调整。
3、API共享
如果你的服务是多端的(浏览器端、Android、iOS、微信等),单页应用的模式便于你在多个端共用 API,可以显著减少服务端的工作量。
4、组件共享
对性能体验要求不高的场景,或者产品处于快速试错阶段,借助于一些技术(Hybrid、React Native),可以在多端共享组件,便于产品的快速迭代,节约资源。
缺点:
1、首次加载大量资源
在一个页面上为用户提供产品的所有功能,因此页面加载的时候需要大量的静态资源,加载时间较长。
2、较高的开发门槛
对前端工程师要求提高,工作量也增加数倍
3、不利于seo
单页页面,数据在前端渲染,就意味着没有 SEO,或者需要使用变通的方案。