百度360必应搜狗淘宝本站头条
当前位置:网站首页 > SEO教程 > 正文

网站开发模式演进历程

gaoyangw 2024-12-02 17:33 18 浏览 0 评论

我们现在基本每天都会浏览网站,那么网站的开发其实经历了几个较大的演进历程,接下来从特定视角介绍一下主要开发模式的演化过程。

  • 静态网站
  • 动态网站
  • 服务端渲染与客户端渲染结合
  • 前后端分离

静态网站

早期的网站基本上都是静态的,所谓静态并不是页面是静止的,没有动画效果,而是把网站所有的网页开发好之后直接上线部署到服务器上,那么这些页面就固定放到服务器之上,如果上线时是100个页面,那么如果不更新,该网站就是写死的100个页面了,这就是所谓的“静态网站”。静态网站的内容主要包括HTML、CSS、javascript代码,图片、字体文件、音频、视频等资源。其交互流程如下图所示:

静态网页访问流程

  • 客户端向服务器发送请求
  • Nginx根据请求路径获取网页内容
  • 将页面内容传输给客户端
  • 客户端展示网页效果

静态网站有明显的局限性:

  1. 如果需要更新页面的内容,比如说,每个页面添加一条广告信息,会很麻烦,需要一个一个页面进行修改,工作量比较大,尤其是大规模的网站,这种方式基本不可行。
  2. 无法实现交互效果,比如登录,发表评论、点赞等功能。

动态网站

鉴于静态网站的问题,后来就诞生了动态网站技术、比如PHP、JSP、ASP等。所谓的动态网站也不是页面有动画,而是指页面是通过技术手段动态生成的。比如银行的账单页面,张三和李四会看到不同的数据,但是在服务器中仅仅一个动态页面就够了,当张三和李四分别访问该动态页面时,会分别动态生成两个不同的HTML页面,动态性体现在HTML的动态生成上。

以PHP动态网站技术为例,具体流程如下

  • 客户端访问服务器的php页面
  • Nginx根据请求路径找到php文件
  • Nginx把php文件交给php运行环境进行编译,转换成静态HTML页面,然后交给Nginx
  • Nginx把动态生成的HTML页面返回给客户端
  • 浏览器展示页面效果

服务端渲染与客户端渲染结合

无论是静态网站还是动态网站,当浏览器发送请求之后,如果服务器返回内容的时间比较慢(可能是网络问题),那么浏览器只能等待,处于阻塞状态,呈现出的效果就是长时间白屏,在当今快节奏的生活模式下,坐高铁、吃快餐......这些习惯已根深蒂固,当一个页面3秒左右不出来,我们甚至都不愿意去等。

所以为了改善用户体验,2005诞生了一种技术Ajax,他可以使浏览器在不阻塞的情况下,向服务器发送请求,用户是无感知的,当服务器返回数据后,页面再根据数据进行局部更新。有了Ajax这种技术,再配合jQuery,基本上就成了前端的主要开发模式,这也是此后jQuery近10年的辉煌时期(当然现在有了更好的选择—Vue/React/Augular)。

接下来需要着重解释一个概念:渲染。所谓的渲染就是把数据填充到HTML标签的过程。

还是以查看账单的场景为例,账单数据一般都是存储在数据库中,那么php代码会从数据库中查询出数据然后拼接到HTML标签代码中,这个过程发生在服务器,所以称之为服务端渲染。流程如下图所示:

客户端请求得到服务端渲染的HTML页面之后先进行展示,如果用户触发操作要更新页面,还可以通过Ajax请求获取后端返回的数据(当前基本上是JSON格式的数据),从而实现页面的局部更新。比较典型的场景有触底加载更多列表内容的效果,当页面滚动到底部的时候,页面上面的内容不会消失,而是在底部显示Ajax请求的一页新的数据,这种效果体验非常好。那么服务器如果仅仅返回JSON数据,页面端会通过javascript代码把数据填充到HTML标签中进行显示,这种数据填充标签的过程发生在浏览器,即所谓的客户端渲染

jQuery时代基本上是服务端渲染和客户端渲染结合使用,一般主页面采用服务端渲染,主页展示之后,后续页面局部更新操作一般基于Ajax,采用客户端渲染方式,从而提升交互体验。

前后端分离

随着互联网的持续繁荣,客户端基于Ajax渲染的业务场景越来越复杂,那么把JSON数据拼接到HTML标签中的代码实现越来越繁琐,代码变得难以维护。虽然出现了像art-template之类的前端模版引擎,从某种程度上有所改善,但是像事件处理还是需要自己去操作,并未从根本上解决问题。

好在2009年一种技术的诞生奠定现今前端更加繁荣的开发模式:Node.js

Node.js可以让javascript运行在非浏览器环境,并且提供了对接底层操作系统API的能力。经过十多年的发展,这个生态已经非常繁荣。新兴的前端框架基本都是构建在Node.js生态之上,包括目前比较流行的AngularJS、Vue、React。

新兴前端框架,比如以React为例,基本上颠覆了前端代码的开发模式,将程序员从繁琐的DOM操作中解脱出来,而仅仅需要关注数据处理和业务操作,从而大大简化了前端的代码实现。此外更重要的一点就是,前后端从项目结构和开发流程上彻底分离,让前端和后端可以更加专注(其实都可以少掉点儿头发),而之前很多后端基本都是做全栈的工作。

在这种前后端分离的开发模式下,具体流程如下

在这种前后端分离的模式下,前后与后端的对接仅仅需要约定一种接口(接口细节包括请求地址,请求方式、请求参数,后端返回的结果),那么这种接口是与技术无关的,所以前后的技术选型可以自由设计,前端可以选择React、Vue等都可以,后端可以选择java、PHP、python等亦无所谓。

对于前端来说,一个很大的变化,就是前端项目可以单独实现工程化,可以独立设计、开发、测试、部署上线以及运维等。所以这套流程靠后端已经不太容易兼职搞定了,所以前端工程师这个岗位才有了一席之地,并且可以与后端工程师分庭抗礼。

相关推荐

Everything:Windows平台最强大的文件搜索神器推荐

Windows自带的搜索功能一直是让用户头疼的问题。搜索效率低下、功能不完善、响应缓慢,甚至有时明明知道文件就在某个文件夹中,却怎么也搜索不出来。现在的Windows很多时候都给我个感觉,微软操作系统...

谈谈目前最好用的文件搜索神器(强大的文件搜索软件有哪些)

Everything是由...

深度解析:如何做好网站SEO优化服务,提升网站排名

https://txc.qq.com/products/755566/blog/1790183https://txc.qq.com/products/755419/blog/1790181https:...

JDG第一,GEN第二!S13全球总决赛夺冠热门Top10

伴随着2023全球总决赛即将到来,关于本届世界赛有哪些有机会夺冠的队伍也成为了不少网友们讨论的焦点。而在近日,国外网站目前更新了各大参赛队伍的夺冠热门排名。那么,具体情况如何?就让我们一起来了解一下吧...

7大热门查重降重网站汇总,论文写作必备!(部分免费)

查重,是论文写作的必备流程。...

大量恶意广告影响荷兰的热门网站(宣传荷兰的广告句子)

阅读:26次点赞(0)收藏4月10号,Fox-IT安全指挥中心检测到了大量与漏洞利用工具有关的攻击事件。这些安全事件起源于针对荷兰网站的大规模恶意广告活动。我们在下面列出了受影响的荷兰网站站点,这些...

热门视频素材网站的在哪里找?(视频素材网址)

身为短视频剪辑者来说,不管是国内的,还是国外的,大多数都使用过了。下面分享俺剪辑多年视频后,探索出来的经典视频素材,都是榜上有名的,介绍最全的一篇,你来看看就知道啦!...

我用PPT做了1个视频,却上了B站热门!这个超酷动画库分享给你

...

热门AI视频生成网站,看这个榜单就够了

热门AI视频生成网站,看这个榜单就够了

八大受到网友一致好评的经典著作,每一本都火出天际

火的小说很多,但这么火的也是很少见的。今天就给大家来盘一盘这几本火出天际的网文经典著作,都是不少书友们的入坑神作啊。...

个人隐私遭泄露?这3类“不良网站”才是罪魁祸首!网友:不早说

大家都知道,在网络信息时代,毫无个人隐私可言,很多人每天都会收到一些垃圾短信、骚扰电话,而且使用微信、QQ时,也经常遇到陌生人,发来的“好友申请”,但实际上,这些问题,通过设置电话、短信拦截功能,就能...

想约会吗?泰国7大最热门交友程序和网站,让你情人节不孤单

空气中弥漫着爱意,情人节即将来临。但是,如果你还没有约会,别担心!还有不到一周的时间,感谢技术的力量,我们仍然有时间找到那个特别的人。有了如此多的约会应用程序和网站,与潜在的匹配对象建立联系并找到火花...

消息称微软将为Win11任务栏加入“推荐”,展示热门网站/应用

IT之家11月10日消息,据消息源Phantomofearth透露,在近期的Windows11Build27723版本中,系统新增一项名为“SnapGroupsRecommend...

TopList:一款获取各大热门网站热门头条的聚合网站

开源地址:https://github.com/tophubs/TopList...

好玩有趣的十款网页小游戏推荐,上班摸鱼爽到不行!

分享十款好玩有趣的网页小游戏,打开就能玩,随便哪个都能玩上一整天,赶紧看过来~花光比尔盖茨的钱入口:https://neal.fun/spend/这个网站会模拟拥有比尔盖茨的900亿美元资产,内置可购...

取消回复欢迎 发表评论: