Web静态化、动态化研究与实践

2019-04-29 02:07郑冰
视听 2019年4期
关键词:动态化静态页面

□郑冰

广西网络广播电视台自2009年开始自主研发以来,Web部署模式根据网络、硬件等资源的投入进行过多次调整。Web页面由静态化转向动态化就是其中的调整之一。2018年12月之前广西网络广播电视台一直沿用静态页为主、动态页为辅的部署模式,后经过网站研发人员的整体评估,并经过领导同意,将网站部署模式转变成了动态页为主、静态页为辅的部署模式。

一、静态化概念与部署

广西网络广播电视台自2018年12月之前一直沿用静态化为主、动态化为辅的开发和部署模式。这主要是因为当时网站在网络带宽和服务器资源上投入力度不大,带宽方面只有100M电信光纤(后扩容到了300M电信光纤和100M联通光纤实现了双路主备),而100M的带宽对于一个以视频为主的网站来说是远远不够的,在服务器方面只有一台数据库服务器和一台前端Web服务器,这些硬件资源在访问量不高的时候能够勉强维持,一旦到了访问量激增的特殊时期,网站经常会有打不开或者打开缓慢的情况,比如南宁国际民歌艺术节期间,网站上有视频直播,在此期间网站打开缓慢的情况格外明显。基于以上原因,网站研发人员对网站进行了静态化改造,保障了网站页面的打开速度和用户体验。

(一)静态化概念

静态网页是实际存在的,用户在访问到某个静态页眼睛所能看到的文字、图片等内容在网页的源代码中是实实在在存在的,就好比我们看到某一篇文章里面的文字,都是已经印刷到了纸上,而每一篇文章根据篇幅的长短就会有相应数量的张纸,所以我们所说的静态页是除非人为改动,否则内容不会发生变化的Web页面。常见的静态页面有以.html或.htm为后缀名的Web页面。

(二)静态化优缺点

静态页面每一个页面就存在一个实际的物理文件,所以静态页是多对多的关系。其优点如下:

1.服务器在接收到用户的请求后直接将页面发送到用户浏览器,不需要再经过其他处理过程,能极大提高页面访问速度。

2.因静态页面不需要与数据库服务器交互,页面与数据库服务器之间没有绝对的联系,从而可降低数据库服务器的负荷,并减少曝光的几率,提高数据库服务器的安全性。

3.因为访问静态页的域名地址一般不带任何参数,对搜索引擎相对比较友好。

同样,静态页面也存在着相应的缺点:

1.一篇文章就必须对应至少一个静态页,如果业务上有分页的需求还会有一篇文章对应多个静态页的情况。随着网站数据越来越多,服务器上静态页的数量也会增多,这就要求服务器有足够的存储空间。

2.静态页不能访问数据库,在更新某篇文章后,静态页不能时时显示修改后的内容,必须进行替换才可以让用户看到修改后的内容。

3.每个静态页占用的空间很小,如果有非常大量的小文件保存于硬盘中,这种碎片化的文件会造成维护不便,甚至有可能会对硬盘造成损伤。

(三)静态页生成与部署

正因为静态页是实际存在的物理文件,就好像书上的每一个页面都需要印刷一样,每次都需要进行制作,但如果每次都需要人工制作的话将会产生非常庞大的工作量,所以要选择智能化自动生成静态页的方案。自动生成静态页方案一般会有两种方式:

1.使用Web Service实时生成静态页方式。编辑人员在新增、修改内容后,程序实时生成相应的静态页。该方式的优点是编辑人员提交信息后就能马上触发静态页生成事件,缺点是如果网络卡顿、数据库卡顿的话,有可能会生成失败或者编辑人员需要等待静态页生成后才可以进行下一步操作。

2.使用Window Service监控生成静态页方式。使用该方式编辑人员只需要按照一般的方式对网站内容进行操作,Window Service对网站数据库进行监听,如发现数据库发生新增、修改等操作,将生成新闻内容静态页。该方式的优点是网站编辑人员无需等待页面的生成,交由Windows的服务去完成,如果生成失败会再次尝试。其缺点是如果一直生成失败,则会一直停留在这篇静态页的生成上,其他内容需要排队等待。

经过综合考虑对比后,广西网络广播电视台使用Window Service监控生成静态页方式,基本原理是先将制作好的动态页模板部署于静态页生成专属服务器中,并使用Window Service对数据库进行监听,当Window Service监听到数据库发生了新增、修改操作时获取已经部署好的动态页源码另存为Html页面,并对数据库进行生成状态记录。

静态页生成流程图

Window Service代码片段节选:

二、动态化概念与部署

(一)动态化概念

动态化是跟静态网页相对的一种网页编程技术,是一对多的关系。我们可以把动态页理解为一个容器,比如一个杯子,当需要喝水时可以用杯子装水,当需要喝酒时则可以用这个杯子装酒。同样的道理,当我们需要页面呈现什么样的内容,动态页就可以实时去装什么内容呈现给用户。我们把实际的内容信息存放在数据库中,动态页通过唯一标识(ID)到数据库中查找相应的内容存放到容器中并显示给用户,当今主流动态页通常以.jsp、.php和.aspx为后缀名。

动态网页流程图

(二)动态化部署场景

既然动态化与静态化是相对的,那它们之间的优缺点大部分也是相对的,在此就不再进行赘述。

随着领导对网站重视程度的提高,广西网络广播电视台在带宽和硬件投入上也逐渐增加,已经具备了实行动态化为主、静态化为辅的部署方式。经过研发人员讨论并经领导同意后,着手实时了动态化改造。下面介绍需要动态化的几个大概场景:

1.汇总页需要动态化。为了方便网友查找和阅读,以及搜索引擎更加方便收录网站内容,几乎所有网站都会有一些汇总性质的页面,比如列表页和搜索页。汇总页因为数据量非常庞大,特别是一些大型网站,稿件量动辄上千万,这么多数据在一个页面上显示的话,即使是静态页加载速度也会非常缓慢,如果用户电脑性能差点还有可能导致死机,所以这类型的页面通常需要使用分页技术将所有文稿分到若干个页面,每个页面显示若干条。如果使用静态化开发,随着稿件的增加,根据参数的不同,每操作一条稿件就需要重新生成所有可能的静态页,这将耗费大量时间和大量的服务器性能。

2.存在大量稿件并且服务器性能或者数量足够的情况下建议动态化。如果网站的文稿数量非常庞大,全部静态化会给运维造成不小的麻烦,特别是在需要进行数据迁移和批量删除数据的时候。广西网络广播电视台在实际的运维过程中,曾经出现过存储故障导致需要迁移数据的问题,以及根据领导的决定需要大批量修改文稿数据的情况,当时网站总静态页数量超过百万,加之网站进行了防篡改同步设置,迁移完成后还需要重新同步所有页面,经过网站维护人员评估,这些文件全部迁移并重新同步完成大概需要五天时间。所以类似于这种情况,建议使用动态化开发部署模式。

3.需要频繁修改的情况下建议使用动态化。正如上面所述,每一篇稿件最少对应一个静态页面,如果模板页需要经常反复修改,每改动一处就需要重新生成全部稿件页面,这将耗费大量时间和服务器性能资源。

(三)动态详情页开发

动态页的基本步骤是,管理员将文稿、视频、图片通过CMS系统录入到数据库中,并将数据的唯一标识发布到网站前台展示,用户根据唯一标识即可获取并查看信息。

动态页常见的地址格式,如http∶//news.gxtv.cn/News.aspx?id=211,用户根据这个地址就可以访问到管理员发布的详细信息,其中News.aspx是动态页地址,数字就是找到相应信息的唯一标识参数。

动态详情页代码片段节选:

三、结语

一个大型网站的开发和部署所需要考虑的并不仅仅是开发人员的开发能力,也不仅仅是能实现效果就可以了,在网站项目的实际开发和部署过程中,盲目追求静态化并不可取,需要综合考虑各方面的因素。当下在各大搜索引擎比如百度上搜索“静态页”“动态页”,查到的资料大多都是说静态化的优点以及如何将页面静态化的方法等,往往忽略了静态化相对于动态化所存在的缺点,静态化和动态化并不是两个非黑即白的存在,在项目实际运行中,我们会发现不论是动态化还是静态化都各有优缺点,所以就需要我们寻找“黑”与“白”之间的“灰”,需要做到动静结合。广西网络广播电视台除了一些需要频繁访问数据库的页面例如网站首页、各频道首页仍保留静态化外,其他页面全部进行了动态化改造,改造完成后的系统至今运行稳定,将来我们将继续研究和探索动态与静态的比例,争取达到速度、性能以及用户体验上的最优平衡。

猜你喜欢
动态化静态页面
刷新生活的页面
最新进展!中老铁路开始静态验收
儿童认知发展水平诊断工具IPDT的动态化编制及其在低社会经济地位儿童中的应用
静态随机存储器在轨自检算法
答案
建筑工程造价的动态管理论述
VI系统的维度补充
高等职业院校专业剖析的常态化和动态化探讨
油罐车静态侧倾稳定角的多体仿真计算
Web安全问答(3)