web项目可分为单页应用 和 多页应用。单页应用,就是只有一个页面,其他内容,估计就是动态加载,用从加载其他页面片段 + 请求后台 这种方式来完成。这么一说,我之前做的,其实都是多页应用。

相比之下,

单页应用的优缺点

单页应用的优势是什么呢?

1、页面切换非常快,不会出现白屏,还可以作出过渡效果2、公用的js和css一次性加载,不浪费3、良好的前后端分离,服务器端只管响应数据请求,不用关心页面渲染,压力小,API重用性高

缺点呢?

1、首次加载慢。不难理解,这么多东西要一下子加载,当然慢了。加载出来就好了。2、不利于SEO。其实,如果不是互联网项目,可忽略不计3、复杂,对开发要求高。也好理解,这么多东西,都挤在一个页面上,怎么控制,怎么加载,十分考验工夫。

依我看,前2条都不是什么大问题,就是问题3,可能会限制单页应用用于复杂系统。我没有开发过单页应用系统,但按我的理解,在大型、复杂的系统中,不宜采用单页应用。单页应用,最适合手机端,但从目前来看,手机端的应用,都比较简单。也有可能出现一种混合模式,即一个大型应用,会由多个单页应用来构成。

单页应用的意义

速度快,体验好这些不是最明显的优势,多页应用努力一下,也能接近这个目标。我认为单页应用最大的意义是使得前后端分离真正可以落地。曾几何时,我从网上习得“前后端分离”一词,跃跃欲试,蠢蠢欲动,搞了一把前后端分离,结果发现,页面重用简直就是恶梦,因为浏览器实在是太弱了,什么模板页之类的东西,其实都需要服务器来完成。之后我认为,所谓的前后端分离,要界定究竟什么是前后端?前端除了浏览器,其实还包括服务器端运行的控制器。(见拙作:前后端分离)

但如果是单页应用,就不一样了。没有所谓模板这个概念,只有一个页面,其余都是片段。服务器真的就是与渲染解耦,一心只负责数据响应就好。不过,工作只是由后端转移到了前端而已。据说单页应用,前端开发人员要多于服务器端。你看看,控制器,视图吗,数据层,不亦乐乎,开心就好。

本质上,单页应用就是一个富(肥)客户端。事物都是螺旋式发展的。2000年的时候,CS应用如日中天,BS架构应用方兴未艾,但是BS架构当时的缺点是性能不高,ajax技术刚出来,并未普及,体验也远远比不上CS的好。但那时CS和BS之争已经如火如荼,微软还出了个折中的产物:智能客户端。智能客户端就是个CS结构应用,但是它会自动更新,一定程度上弥补了CS部署更新工作量大的问题。后来的发展大家都看到了,CS日趋式微,BS成为霸主。当然啦,还是有flash啦、silverlight啦这类伪BS的富客户端技术做无谓的挣扎,昙花一现,也同样被抛弃。没想到,10年一轮回,现在,单页应用这种既是BS又是富客户端的模式出来了。

有点意思。

单页应用 vs 多页应用相关推荐

  1. 将表单请求提交到本页

    在Web应用程序中,有时需要将表单请求提交到本页进行处理 实现将表单提交到本页,只要将表单的action属性设置为本页即可,假定表单页为index.jsp ,那么action的值为index.jsp, ...

  2. HTML单页营销宣传专题页源码

    简介: HTML单页营销宣传专题页源码是一款大气单页企业网站源码下载. 下载地址: http://www.bytepan.com/1iJpMBpts0K

  3. 单页应用和多页应用的区别

    一.定义区分 [1.1]单页应用 单页应用又称 SPA(Single Page Application)指的是使用单个 HTML 完成多个页面切换和功能的应用.这些应用只有一个 html 文件作为入口 ...

  4. 独立手机版营销推广落地页pbootcms模板落地页单页网站

    前两天还发布了另外一个排单落地页面,和这个差不多,可以对比下载哈.比较适合做竞价单页面使用,挺棒的PbootCMS内核开发的网站模板,该模板适用于单页网站.落地页网站等企业,当然其他行业也可以做,只需 ...

  5. VUE单页面应用的内页很难被百度收录

    这两年自己写了几个WEB项目,前端都是用的vue框架,后台大部分用的nodejs,也有用的spring的:但是他们有一个共同点:都是SPA单页面应用,并且使用HEXO框架在二级目录搭建了一个静态博客. ...

  6. Vue 单页应用与多页应用的区别

    Vue 单页应用与多页应用的区别 概念: ● SPA单页面应用(SinglePage Web Application),指只有一个主页面的应用,一开始只需要加载一次js.css等相关资源.所有内容都包 ...

  7. 问题三十五: 怎么用ray tracing画二次曲面(quadratic surfaces)(2)——单页双曲面、双页双曲面、椭圆锥面、椭圆柱面

    35.2.1 数学推导 单页双曲面.双页双曲面.椭圆锥面.椭圆柱面. 这四个二次曲面方程共同形式: 但是,注意到,这些曲面都是开放曲面.在画图时,需要限制曲面的范围(以免曲面覆盖整个画面). 我们在这 ...

  8. 简述vue单页应用与多页应用的区别

    简述vue单页应用与多页应用的区别 文章目录 简述vue单页应用与多页应用的区别 前言 一.Vue单页应用是什么? 内部原理: 二.Vue多页应用是什么? 内部原理: 三.它俩有啥区别? 四.总结 前 ...

  9. 操作系统之内存管理:4、基本地址变换机构(段氏、页式、段页式)

    4.基本地址变换机构 页式 1.页式 硬件实现流程 地址变化步骤 例 问题 2.页式+快表 什么是快表? 引入快表后地址变换步骤 引入快表后的硬件实现 快表无法装入完整的慢表,达到高命中率的基础原理是 ...

最新文章

  1. 盘点当下大热的 7 大 Github 机器学习『创新』项目
  2. java 异步 web_Java web spring异步方法实现步骤解析
  3. vue element 表格使用fixed固定列后切换菜单时错位问题
  4. NSDictionary 、 NSMutableDictionary
  5. when will the ABindings be filled for json.JSONModel in SAP UI5
  6. 没有Wi-Fi?三种方法通过iPhone让Macbook连上网络
  7. android背景图边框渐变,GitHub - jvyun/TestShape: 使用自定义属性替代项目中的shape文件,可以给View设置背景色、弧度、背景渐变、边框、边框颜色、渐变方向等...
  8. Rust : 独一无二的Some
  9. linux环境Mechanize安装,在linux下安装activepython2.5 setuptools ClientCookie
  10. ubuntu系统调节电脑亮度
  11. hiberfil.sys文件删除
  12. bootstrap学习心得总结
  13. 盘点买房贷款的八大注意事项
  14. python求两个数的最大公约数和最小公倍数_Python求两个数最大公约数、最小公倍数...
  15. stm32经典笔试题_stm32嵌入式试题
  16. 64位系统下,一个32位的程序究竟可以申请到多少内存,4GB还是更多?
  17. 关于nginx报错/usr/share/nginx/html/jiankongshare failed (2: No such file or directory)的问题解决...
  18. 服务器系统ghost蓝屏,win7系统ghost安装一半蓝屏的解决方法
  19. TensorFlow学习笔记——(3)TF2常用函数
  20. 论文整理(陈怡然团队)

热门文章

  1. 钉钉企业通知消息接口(三)
  2. iOS - 发送邮件(E-mail)
  3. 术业有专攻,尽好本分最重要
  4. 浏览器针对同一域名的请求限制问题,flvjs与videojs视频播放同时播放数量限制,附解决方案
  5. 阿根廷探戈舞会- 一起salsa百科 - 一起salsa网 - Powered by HDWiki!
  6. libtoolize
  7. 倒排索引(反向索引)
  8. 该虚拟机似乎正在使用中。 如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。否则,请按“取消(C)”按钮以防损坏
  9. Linux libvirt目录,Linux-libvirt3.2 升级4.1
  10. Oracle的概念和术语 (二)