动态网站中静态页面的管理与维护

27、网站数据删除与管理功能实现指南 本文详细介绍了在网站开发中实现数据删除与管理功能的方法,包括为特定页面添加删除功能、将静态页面转换为动态页面,以及实现数据的CRUD操作。通过具体的代码示例和步骤说明,帮助开发者掌握如何安全高效地处理数据管理功能。 阅读详情

内容摘要:

  静态网页和动态网页各有特点,网站采用动态网页还是静态网页主要取决于网站的功能需求和网站内容的多少,如果网站功能比较简单,内容更新量不是很大,采用纯静态网页的方式会更简单,反之一般要采用动态网页技术来实现。  

  静态网页是网站建设的基础,静态网页和动态网页之间也并不矛盾,为了网站适应搜索引擎检索的需要,即使采用动态网站技术,也可以将网页内容转化为静态网页发布。

  动态网站也可以采用静动结合的原则,适合采用动态网页的地方用动态网页,如果有必要使用静态网页,则可以考虑用静态网页的方法来实现,在同一个网站上,动态网页内容和静态网页内容同时存在也是很常见的事情。

 

一、动态网页与静态网页

  什么是动态网页?动态网页有哪些特点?

  动态网页是与静态网页相对应的,也就是说,网页URL的后缀不是.htm、.html、.shtml、.xml等静态网页的常见形式,而是以.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号——“?”。

  如页面网址为:http://www.webjx.com/list.php?typeid=3

  这就是一个典型的动态网页URL形式。

  这里说的动态网页,与网页上的各种动画、滚动字幕等视觉上的“动态效果”没有直接关系,动态网页也可以是纯文字内容的,也可以是包含各种动画的内容,这些只是网页具体内容的表现形式,无论网页是否具有动态效果,采用动态网站技术生成的网页都称为动态网页。

  从网站浏览者的角度来看,无论是动态网页还是静态网页,都可以展示基本的文字和图片信息,但从网站开发、管理、维护的角度来看就有很大的差别。

  我们将动态网页的一般特点简要归纳如下:

  (1)动态网页以数据库技术为基础,可以大大降低网站维护的工作量;

  (2)采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、用户管理、订单管理等等;

  (3)动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页;

  (4)动态网页中的“?”对搜索引擎检索存在一定的问题,搜索引擎一般不可能从一个网站的数据库中访问全部网页,或者出于技术方面的考虑,搜索蜘蛛不去抓取网址中“?”后面的内容,因此采用动态网页的网站在进行搜索引擎推广时需要做一定的技术处理才能适应搜索引擎的要求。

  (5)网站由于其具有交互性,所以网站存在很大的安全隐患,如果开发设计人员在编程过程中安全性没有考虑到位,网站是很容易被黑客入侵的。

  (6)动态网站的页面上的信息都必须从数据库中读取,每打开一个页面就读取数据库一次,如果访问网站的人数很多,这会对服务器增加很大的荷载,从而影响这个网站的运行速度。

  什么是静态网页?静态网页有哪些特点?

  在网站设计中,纯粹HTML格式的网页通常被称为“静态网页”,早期的网站一般都是由静态网页制作的。

  静态网页的网址形式通常为:http://www.webjx.com/htmldata/2005-06-17/1118962699.html

  也就是以.htm、.html、.shtml、.xml等为后后缀的。在HTML格式的网页上,也可以出现各种动态的效果,如.GIF格式的动画、FLASH、滚动字母等,这些“动态效果”只是视觉上的,与下面将要介绍的动态网页是不同的概念。

  我们将静态网页的特点简要归纳如下:

  (1)静态网页每个网页都有一个固定的URL,且网页URL以.htm、.html、.shtml等常见形式为后缀,而不含有“?”;

  (2)网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页的内容都是保存在网站服务器上的,也就是说,静态网页是实实在在保存在服务器上的文件,每个网页都是一个独立的文件;

  (3)静态网页的内容相对稳定,因此容易被搜索引擎检索;

  (4)静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难;  

  (5)静态网页的交互性交叉,在功能方面有较大的限制。

  以上分别介绍了动态网页和静态网页的概念及各自的特点。由上述信息可知,当网站规模较小,网站内容更新不频繁时,用静态页面是完全合适的。但是当网站内容更新频繁时,使用静态页面不便于更新,这时使用动态页面就会节省很多的精力。不过,动态页面也有自己的不足,如果网站访问量非常大,程序需要处理的数据量就非常大,容易造成网站不稳定甚至瘫痪。针对上述问题,有一种解决方案,就是使用“动静结合”的方式来管理网站的信息。所谓“动静结合”,就是发布的内容还是采用后台程序录入,录入完成后,后台程序将录入的信息根据选定的模板自动的制作成静态网页保存在服务器上,而且这些静态网页的管理与维护也由后台程序统一进行,不需要人为干预。这样避免了手工制作静态页面的大工作量,又不失动态页面的灵活性。

 

二、动态页面静态化的实际问题

  以新闻发布系统为例,在实际中有两种情况需要分析。

  第一种,信息发布以后,内容变化不大的页面(如:新闻显示页面)。这类页面由于发布以后变动不大,可完全使用后台进行管理。具体的操作有:添加文章时生成静态页面,修改文章、管理评论时更新静态页面,删除文章时删除静态页面。由于文章链接直接指向静态页面,而且用户浏览是不需要经过程序的处理,所以浏览速度是最快的。但是缺点也很明显,静态页生成后不能自动更新,需要管理员在后台进行手工操作,在改版时尤其不便。

  第二种,信息发布以后,页面内容变化会变化很大(如:新闻列表页面)。此类页面随发布信息的添加、修改、删除等操作而变化,比较频繁。添加了一篇文章,此文章所在分类及其所有父分类的分类列表页面都需要更新,此过程对服务器性能影响很大,而且生成的静态页面也不一定有机会被访问。为了解决这个问题,可以让前台的一个动态页面参与静态页面的管理和维护。前台工作流程如下:所有分类页面的连接均指向一个动态页面(如:class.aspx?classid=123&page=1,classid是该分类的id,page是页码),该页面检查所对应的静态页面是否存在或者是否需要更新,若不存在或需要更新,则进行更新,之后再转向对应的静态页面。后台的设计比较简单,只要在文章被添加、修改、删除时将该分类及父分类的静态页面全部删除就行。这样做的好处是可以避免生成没有被访问的页面,减轻了服务器的负担,有可以定期自动更新页面;另一方面,前台还是靠程序来维护,当访问量大时,对服务器来说,还是一项比较大的负担。

 

三、具体设计

首先,以asp.net技术和c#语言说明生成静态页面的方法。使用HttpWebRequest类就可很容易的将动态网页静态化。程序代码如下:

 

public bool string MakeStatic(string sUrl,string htmlPath)

{

         try

         {

              string sResponse = null;

 

              //发送http get请求sUrl

              HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sUrl);

              Stream stream = request.GetResponse().GetResponseStream();

 

              using(StreamReader reader = new StreamReader(stream,Encoding.Default))

              {

                   //读取服务器回应

                   sResponse = reader.ReadToEnd();

                   reader.Close();

              }

 

              using(StreamWriter writer = new StreamWriter(htmlPath,false,Encoding.Default))

              {

                   //写入静态页面

                   writer.Write(txt);

                   writer.Flush();

                   writer.Close();

              }

         }

         catch

         {

              //失败

              return(false);

         }

 

         //成功

         return(true);

     }

 

  MakeStatic函数接收两个参数,sUrl为要浏览的页面,htmlPath为要保存的静态文件。该函数模拟浏览器,向服务器发出http get命令,请求地址sUrl,并接收服务器返回的html代码,最后将这些html代码保存到htmlPath文件中,就完成了静态页面的制作,非常方便。

  其次,针对前面两种情况,分别给出具体的解决方法。

  第一种情况,新闻显示页面。

    静态页面的生成用上面给出的函数可以轻易实现。不过还有几个实际的问题需要解决。生成静态页面以后,内容就固定了,要解决广告、点击量和评论的自动更新,这些内容就不能被放进静态页面中去,而是使用框架或脚本包含进静态页面,这样个部分互不影响,更新起来更方便。

    一、广告的更新。直接用框架包含进一个含有广告的页面(如:ad.html)就可以圆满的解决,更换广告时只需要更新ad.html,所有静态页面的内容就都随着更新了。框架的代码:

      

    二、点击量的更新。思路跟广告一样,单独有一个页面来统计点击量(如:hits.aspx),可以使用框架来包含进静态页面(代码同上),也可使用脚本方式,代码为:

      

      代码中给出了名为articleid的参数,该参数指定了要被更新点击量的文章id,hits.aspx根据articleid参数更新该文章的点击量并输出显示。

    三、评论的更新。评论的更新过程比较复杂,因为添加评论是一个交互的过程,静态页面自身根本不可能完成这一操作。解决方法是把添加评论的工作交给另一个页面(如:remark.aspx)来完成。具体过程为:在静态页面上用form给remark.aspx传递评论的内容,remark.aspx接收评论内容,添加评论,更新文章的静态页面,最后再重定向到静态页面。这样就完成了评论的添加。

remark.aspx中相关操作的代码:

              protected override void OnLoad(EventArgs e)

              {

                   base.OnLoad (e);

 

                   int nArticleID = int.MinValue;//文章id

                   int nClassID = int.MinValue;//分类id

 

                   try

                   {

                       //获取传入参数

                       nArticleID = int.Parse(this.Request.QueryString["articleid"]);

                       nClassID = int.Parse(this.Request.QueryString["classid"]);

                   }

                   catch

                   {

                   }

 

                   //检查有效性

                   if(nArticleID < 1 || nClassID < 1)

                   {

                       this.Response.Redirect("/error.html",true);

                   }

             

                   string sRemarkBody = this.Request.Params["remarkbody"];

 

                   //格式:/show.aspx?id=456&cid=123

                   string sFrom = string.Concat("/show.aspx?id=",nArticleID,"&cid=nClassID);

 

                   //格式:/news/123/456.html

                   string sTo = string.Concat("/news/",nClassID,"/",nArticleID,".html");

 

                   if(sRemarkBody != null && sRemarkBody.Length > 0)

                   {

                       //添加评论

                       InsertRemark(nArticleID);

 

                       //生成静态页面

                       MakeStatic(sFrom,this.MapPath(sTo));

                   }

 

                   //转向静态页面

                   this.Response.Redirect(sTo,true);

              }

 

      这样处理的静态页面在普通浏览时与其它的静态页面完全一样,只是在发评论时对待更新评论的程序,整体的招待速度还是很快的。

第二种情况,新闻分类列表页面。此类页面在管理新闻的时候变化会非常大,即使采用后台管理也非常的不便。这就需要一些程序来帮助管理员管理这些页面。程序思路在前面已经提过,在此给出能够实际应用的程序代码。

 

              protected override void OnLoad(EventArgs e)

              {

                   base.OnLoad (e);

 

                   int nClassId = int.MinValue;//分类id

                   int nPage = int.MinValue;//页码

                  

                   try

                   {

                       //获取传入参数

                       nClassID = int.Parse(this.Request.QueryString("classid"));

                       nPage = int.Parse(this.Request.QueryString("page");

                   }

                   catch

                   {

                   }

 

                   //检查有效性

                   if(nClassID < 1)

                   {

                       this.Response.Redirect("/error.html",true);

                   }

                   else if(nPage < 1)

                   {

                       nPage = 1;

                   }

 

                   //格式:/list.aspx?cid=123&page=456

                   string sFrom = string.Concat("/list.aspx?cid=",nClassID,"&page=",nPage);

 

                   //格式:/news/123/default456.html

                  string sTo = string.Concat("/news/",nClassID,"/default",((nPage==1) ? ("") : (nPage)),".html");

                   string sPath = this.MapPath(sTo);

 

                   if(!File.Exists(sPath))

                   {

                       //文件不存在时,创建静态页面

                       MakeStatic(sFrom,sTo);

                   }

                   else

                   {

                       TimeSpan ts = DateTime.Now - File.GetLastWriteTime(sPath);

 

                       if(ts.TotalDays > 1)

                       {

                            //文件已存在,但是存在时间过长,需更新

                            MakeStatic(sFrom,sTo);

                       }

                   }

 

                   //转向静态页面

                   this.Response.Redirect(sTo,true);

              }

 
系统维护静态网页源码.zip 网站系统维护静态页源码 立即下载

相关推荐

网站后台管理静态页面及前台模板页面

网页模版:网站后台管理静态页面及登录页面,网站前台模版页面

web系统维护时显示维护状态页面

1.为什么需要显示维护状态页面? 在系统后台更新维护期间,用户按照原地址访问的时候会出现404, 如果不告诉用户当前系统处在维护状态, 用户会以为自己的网络有问题,亦或是自己记错了网站的地址。 因为给用户体验不好。 2.如何实现系统维护状态 在系统维护期间,我们不能将所有的服务器全部down掉, 如果都down掉, 没有服务器为用户提供任何请求响应,因此也无法将维护的状态反馈给用户。 一般情况下,我们的应用程序最上层都有一层反向代理服务器,而反向代理服务器是与业务无关的服务器,一般情况下不会对它进行更新。

Ypromise-的博客 9037

网站系统升级维护提示页面.rar

网站升级中页面模板,系统升级维护中页面模板。模板比较清新,可直接在源码中修改公司名称及升级维护友好提示。

系统升级维护页面例子

维护页面 body { font-family:"Trebuchet MS", Arial, Helvetica, sans-serif; font-size:24px; color:#0387CD; letter-spacing:1px; } layer.open({ type: 1, ski

蜗牛程序员 1万+

网站维护中最新两款HTML5页面源码分享.zip

网站维护页面必备,有需要的下载或者保存

HTML 功能开发中提醒静态页

HTML 功能开发中提醒静态页

服务器维护的动态页面,静动态页面结合

1动态功能模板化大部分网站除了向用户展现内容以供阅读以外,还需要提供一些动态功能便于和浏览者互动,获取浏览者的反馈,以增强网站的黏性。典型的互动应用包括投 票、评论、留言、会员注册等。这些动态功能由一系列的动态页面组成,需要和静态的内容页面在外观和用户体验上保持一致,使整个网站形成一个有机整体。另一 方面,这些互动功能在同一个CMS系统下的不同的网站中又可能会有不同的布局和样式。目前市面上的其他C...

weixin_39752087的博客 583

网站正在升级维护中单页html

简约到不能再干净了,喜欢的可以下载一份! <!--文章内容结束-->

生产环境PHP推荐静态还是动态,建设企业网站使用动态还是静态的好

原标题:建设企业网站使用动态还是静态的好现在网站的制作手法很多,动态网站和静态网站是最常见的,很多用户不明白使用哪种程序最合适。下面,小编就通过自己的认识,把一些关于静态网站和动态网站相关的知识详细介绍下。对于静态网站来说,制作过程很简单,只要可以数量的掌握软件操作技巧,在很快的时间就可以设计出来,不过在日后的维护上是很费劲的。而动态网站的可以采用后台管理,更新数据更方便,即便不太网络技术朋友同样...

weixin_30060575的博客 262

LabVIEW+数据库应用系列保姆级教程,第一篇数据库连接

目录LabVIEW连接数据库的方法连接MySQL连接Oracle,SQL Server,Access等 LabVIEW连接数据库的方法 1、创建udl(Universal Data Link)是通用数据连接文件。界面操作,简单快捷。 2、编写连接字符串。需要熟悉连接字符串的结构,容易出错。 3、其他… 本教程教你使用第1种方法,也是最简单、最常用的方法。 连接MySQL 1、在MySQL Installer内安装MySQL Connector/ODBC,建议安装32位(X86),如下图: 2、创建ODBC

wwplh5520370的博客 1万+

从Jira到Notion:用Sequential Thinking重构你的敏捷工作流(含GPT-6配置模板)

本文探讨了如何利用Sequential Thinking这一AI认知模型,重构敏捷开发工作流。通过连接Jira、Notion等工具,构建动态依赖图谱,实现从被动响应到主动规划的转变。文章提供了详细的配置教程和GPT-6配置模板,帮助团队实现任务自动拆解、智能看板生成与跨平台协调,从而提升项目管理效率。

gpt4scribbler的博客 205

网站页面静态化方案

在大型网站中,访问者看到的页面基本上是静态页面。为什么都要把页面静态化呢?把页面静态化,好处有很多。例如:访问速度快,更有利于搜索引擎收录等。目前主流的静态化主要有两种:一种是通过程序将动态页面抓取并保存为静态页面,这样的页面的实际存在于服务器的硬盘中,另外一种是通过WEB服务器的 URL Rewrite的方式,他的原理是通过web服务器内部模块按一定规则将外部的URL请求转化为内部的文件地址,一

YHL27的专栏 898

【黑马点评优化】2-Canel实现多级缓存(Redis+Caffeine)同步

【黑马点评优化】2-Canel实现多级缓存(Redis+Caffeine)同步

m0_52031708的博客 3844

网站静态化

网站静态化 网站静态化是网站优化SEO的重要手段之一。主要效果是静态页面可以引起搜索引擎的重视,而搜索引擎对动态页面的重视远远比不了静态页面了,主要原因是:对于各种语言(ASP,PHP,JSP,CGI,.NET)动态页面经常采用多个页面来组成一个主页面,拿网站的首页来说:通常是把LOGO等头部分定义为一个页面,尾部版权部分也定义一个页面,主要是为了其他页面也可以方便的调用。所以网站的首页部分...

数据库天地 110

mysql数据目录迁移后表不存在_mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法...

补充:正常情况下,建议数据库备份最好用工具进行备份,通过拷贝数据库表进行数据迁移,不同的环境会出现各种不同的意外问题。背景:今天在整理一个网站的时候,操作系统由于系统自动更新导致一直出现系统蓝屏死机,唉,悲剧了,于是重新安装了系统 windows server 2008 enterprise 32bit。详情:系统安装完成后,重新配置之前那个网站,appache服务配好之后,再配置数据的时候是这样...

weixin_39628271的博客 2673

深入MIPI DSI显示技术栈 (三) DSI vs CSI-2:孪生协议的本质差异

MIPI协议中的DSI与CSI-2存在本质差异:DSI为输出导向协议(Host→Display),用于屏幕控制和画面传输;CSI-2为输入导向协议(Sensor→Host),专攻图像采集。二者在包结构、同步机制、物理层优化等方面均有显著区别:DSI支持命令包和BLLP包,CSI-2具备嵌入式数据包;DSI时钟模式以Burst为主,CSI-2支持Continuous模式。典型场景中,二者协同工作(如手机相机预览),需注意时序同步和延迟控制。设计混合系统时,需合理规划虚拟通道和物理层资源,充分发挥这对&quot

GateWorld的博客 2106

用shtml来include网页文件(开启SSI)

在网站构建过中。当我们遇到很多的内容为静态页面,而页首与页脚又经常要更换时,如果一直使用html文件总会有很多的麻烦。因为批量修改起来很不方面,所以我们总希望能将页脚与页尾include到html文件中来。html属于客户端解析形的格式化语言,自4.0后几乎很难再有大的变动(毕竟很多浏览器只按4.0标准来解析),所以至今也没include这样的概念。而html的框架(frame与iframe)虽然...

html基础教程 3978

【YOLO11改进 - 注意力机制】SCSA通过结合空间注意力和通道注意力,提高各种下游视觉任务的性能。

【YOLO11改进 - 注意力机制】SCSA通过结合空间注意力和通道注意力,提高各种下游视觉任务的性能。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 474

用shtml来include文件(IIS、Apache中开启SSI) zt!

在网站构建过中。当我们遇见非常多的内容为静态页面,而页首和页脚又经常要更换时,如果一直使用html文件总会有非常多的麻烦。因为批量修改起来非常不 方面,所以我们总希望能将页脚和页尾include到html文件中来。html属于客户端解析形的格式化语言,自4.0后几乎非常难再有大的变动(毕竟 非常多浏览器只按4.0标准来解析),所以至今也没include这样的概念。而html的框架...

aidingkui7609的博客 208

(付费请教,防遗忘记录)为什么EDEM bondV1 V2添加后还是没有胶结?????

最近用到了EDEM的胶结功能,在添加了bond V1和V2后,我发现无论颗粒半径设置为多少,接触半径设置为多少,胶结键的参数设置为多少,bond generated数量均为0!!!在后处理中bond中的力也通通为0!!我跟我的同门百思不得其解!!!!最终付费请教了一个大牛,解决了这个问题!!!!答案在文末

zheaa的博客 3101

thermal系列(5)-DTSI中配置Thermal

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.youkuaiyun.com/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录thermal系列目录DTSI中配置ThermalDTSI节点类型描述CPU0的配置举例CPU核hot-plugging举例修改热缓解阈值DTSI的node中带有tracks-lowDTSI中关闭某个Thermal Zones thermal系列目录 thermal系列(1)-引言部分 thermal.

fulinux的博客 1231

NGNc开发者网络发布,诚邀网管!

NGNc开发者网络(NGNc Developer Network)是由一群有朝气和执拙性格的软件开发人员组成的开发社区。www.NGNc.net是它的网址,您可以通过浏览该网站对我们充分的了解。目前整个网站依靠静态页面方式维护,并将动态的新闻放置在blog里,开发人员通过内部论坛和Mail/MSN等方式沟通。为了更好的发展,诚意邀请一名有网站建设经验的网管加入我们,完成网站动态页面的制作和基本

袁德俊的专栏 2318

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

网站静态化——伪静态&SEO

#什么是伪静态,伪静态作用   伪静态即是网站本身是动态网页如.php 、.asp 、 .aspx 等格式动态网页。有时这类动态网页还跟“?”加参数来读取数据库内不同资料。很典型的案例即是discuz论坛系统,后台就有一个设置伪静态功能,开启伪静态后,动态网页即被转换重写成静态网页类型页面,通过浏览器访问地址和真的静态页面没区别。前提服务器支持伪静态重写URL Rewrite 功能。 #需要伪静态...

void 8486

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: select中添加、修改、删除option元素
下一篇: 安装 sql2005----花了一个上午搞定
flyxiaoye
博客等级 码龄19年 8粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值