单页面开发和多页面开发的区别

(盗图镇楼)

多页应用

每一次页面跳转的时候,后台服务器都会返回一个新的html文档,这种类型的网站就是多页网站,也叫多页应用。{页面跳转——>返回html}

优点是:首屏时间快,seo效果好;缺点是:页面切换慢;

为什么多页应用的首屏时间快?

首屏时间叫做页面首个屏幕的内容展现时间,当我们访问页面的时候,服务器返回一个html,页面就会展示出来,这个过程只经历了一个http的请求,所以页面的展示速度非常的快。

为什么搜素引擎的优化效果好(seo)?

搜索引擎在做网页排名的时候,要根据网页的内容才给网页的权重,根据权重的大小来进行网页的排名。搜索引擎可以识别html的内容,而我们每个页面的内容都放在html中,所以多页的应用,seo的排名效果好。

多页应用没有缺点吗?

有!多页应用的每次跳转都需要发出一个html请求,如果网络比较慢,在页面之间来回的切换时,就会发生明显的卡顿。就是切换慢。

单页面应用

第一次进入页面的时候会请求一个html文件,刷新点击一下会切换到其他组件,此时路径也相应的变化,但是并没有新的html文件的请求,页面内容发生变化。原理是:

    js会感知到url的变化,通过这一点,可以用js动态的将当前的页面内容清除掉,然后将下一个页面的内容挂载到当前的页面上。这个时候路由不是后端来做了,而是前端来做,判断页面到底是显示那个组件,清楚不需要的,显示需要的组件。这种过程就是单页应用,每次跳转不请求html文件了。{页面跳转——>js渲染}

优点是:页面切换快;缺点是:首屏时间稍慢,SEO差;(请与单页面应用优缺点对比理解)

为什么页面切换快?

页面每次切换跳转时,并不需要做html文件的请求,这样就节约了很多http发送时延,我们在切换页面的时候速度很快。

缺点:首屏时间慢,SEO差

单页应用的首屏时间慢,首屏时需要请求一次html,同时还要发送一次js请求,两次请求回来了,首屏才会展示出来。相对于多页应用,首屏时间慢。
SEO效果差,因为搜索引擎只认识html里的内容,不认识js的内容,而单页应用的内容都是靠js渲染生成出来的,搜索引擎不识别这部分内容,也就不会给一个好的排名,会导致单页应用做出来的网页在百度和谷歌上的排名差。

后话:

vue开发单页面应用,有这些缺点,为什么还要使用vue呢?

实际上单页面应用对于前端来说是非常完美的页面开发解决方案,并且vue提供了服务器渲染技术(SSR),通过这些技术可以完美的解决这些问题;

单页应用改多页面应用??

单页改造成多页。我个人觉得,改造成多页还是得看具体情况,就像我之前公司有3个项目,这3个部分功能一致,部分又有区别,之前就是分成3套代码来维护,有的时候一改就比较麻烦,所以改造成多页应用了;

原文地址:https://www.cnblogs.com/h1457883884/p/10489789.html

时间: 2024-11-09 11:18:52

单页面开发和多页面开发的区别的相关文章

不难懂——单页面开发与多页面开发的区别

单页面开发: 单页面开发常用于webapp开发和后台管理系统等. 优点:1用户体验好,流畅. 2因为单页面,所以对服务器的压力较小. 3可以在页面切换的时候加一些酷炫的动画效果. 4代码的复用度大.有利于后期的维护. 缺点:1页面复杂度变大,开发难度较大. 2不利于SEO 3初次加载的时候用时较长. 多页面开发: 多页面开发常用于PC端的网站等. 优点:1有利于SEO. 2开发成本较低. 缺点:1网站的后期维护难度较大. 2页面之间的跳转用时较长,用户体验较差. 3代码重复度大. 原文地址:ht

利用pushState开发无刷页面切换

利用pushState开发无刷页面切换<转> 相关文档:https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulatingthebrowser_history 实现目标 页面的跳转(前进后退,点击等)不重新请求页面 页面URL与页面展现内容一致(符合人们对传统网页的认识) 在不支持的浏览器下降级成传统网页的方式 使用到的API history.state 当前URL下对应的状态信息.如果当前URL不是通过pushSta

Drupal8开发教程:模块开发——创建新页面

之前我们已经通过<Drupal8开发教程:认识.info.yml文件>对模块的YAML文件有了了解,今天我们来看如何通过模块开发的方式添加一个新的页面. 在 Drupal 7 中,通过模块添加新页面非常简单,使用 hook_menu 定义路径及回调函数返回要显示的结果即可.但 Drupal 8 却要麻烦很多,虽然也是定义路径,然后关联用于显示内容的函数,但却要在两个文件中分开进行.而且 Controller 文件还有目录结构要求,这些变化都需要慢慢来适应了. 除了上文中定义的 hello_wo

实战使用Axure设计App,使用WebStorm开发(5) – 实现页面功能

系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求  实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目   实战使用Axure设计App,使用WebStorm开发(3) – 构建页面架构  实战使用Axure设计App,使用WebStorm开发(4) – 实现页面UI 实战使用Axure设计App,使用WebStorm开发(5) – 实现页面功能 接上一篇系列文章,在本文中,将进一步的去实现页面功能.去实现输入

混合app开发,h5页面调用ios原生APP的接口

混合APP开发中,前端开发H5页面,不免会把兼容性拉进来,在做页面的兼容性同事,会与原生app产生一些数据交互: 混合APP开发,安卓的兼容性倒是好说,安卓使用是chrome浏览器核心,已经很好兼容H5页面,而且运行机制也是能够同步运行:但ios上就没那么容易了:. 在此我就不说兼容安卓的问题,只把ios问题说说: 问题1:H5调用ios接口,ios需要初始化,js代码在ISO上只运行一次 解决: 本人使用是angular框架搭建的H5页面 var ua = navigator.userAgen

网站开发中web页面跳转几种方式详解

在做web开发中,页面跳转的方式有很多种,然而有些时候这些跳转如何用到恰到好处却很容易被忽视. 客户端触发跳转有如下几种 使用meta元信息 <!--如下表示5秒后跳转到url指定的链接,推荐使用这种方式--> <meta http-equiv="refresh" content="5;url=http://my.oschina.net/ososchina/blog"> 2.使用javascript中的window.location对象 &l

[课程设计]Scrum 3.2 多鱼点餐系统开发进度(页面优化&amp;下单详细信息页面)

Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面)  1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统WEB 5.Sprint 3时间:12.09-12.18 重案组成员   姓名 学号 博客链接 Github链接 队长 黄冠锋 201406114134 http://www.cnblogs.com/hgf520/ https://github.com/crown999   卢利钦 20

Scrum 3.2 多鱼点餐系统开发进度(页面优化&amp;下单详细信息页面)

Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面)  1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统WEB 5.Sprint 3时间:12.09-12.18 重案组成员   姓名 学号 博客链接 Github链接 队长 黄冠锋 201406114134 http://www.cnblogs.com/hgf520/ https://github.com/crown999   卢利钦 20

实战使用Axure设计App,使用WebStorm开发(4) – 实现页面UI

系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目 实战使用Axure设计App,使用WebStorm开发(3) – 构建页面架构 实战使用Axure设计App,使用WebStorm开发(4) – 实现页面UI 实战使用Axure设计App,使用WebStorm开发(5) – 实现页面功能 接上一篇系列文章,在本文中,将在WebStorm中继续开发,实现页面的功