百万数据级的网站静态页面的生成方案

传统的生成静态页面的方法大家都很清楚,无非就是以下两种:
方案一:
    1、每增加/修改一个栏目的信息的时候,就生成一次该栏目(包括父栏目)的页面;
    2、每增加/修改一篇文章的时候,就生成一次该文章的页面,还有与其相关的栏目(包括父栏目)的页面。
方案二:
    1、管理用户先增加/修改栏目/文章,最后再批量地选择欲更新的栏目/文章生成静态。

那么,不管是方案一还是方案二都有以下几个共同点:
    1、所有的静态页面都是由管理员来操作,而前台用户只要浏览即可;
    2、当某一个栏目文章很多的时候,生成静态会非常地慢;
    3、当批量移动/删除文章的时候,生成静态会非常地慢。

....

因为我也是从这两种方法中走出来的,而我有一个内网数据库系统有80多万数据,我切身的感觉到:如果大量地更新文章的时候,服务器快吃不消了;如果哪天感觉页面不美观了,更改模板的时候需要重新生成,简直是……
也有朋友建议我:将栏目/文章的内容输出到XML文件中,最终html通过asp/asp.net+XML+XSL来输出,如此一来可以避免换模板的烦恼……
但是我还是觉得不满意……

最近想到了一种思路,并初步在拥有80多万数据的内网数据库系统中试运行了,但不知道服务器负载会不会加大???
我是如此做的:
    1、管理用户每修改一个栏目的信息的时候,就删除该栏目(包括父栏目)对应的静态页面;
    2、管理用户每修改一篇文章的时候,就删除该文章对应的静态页面,还有与其相关的栏目(包括父栏目)对应的静态页面;
    3、某一个具体的栏目/文章的第一个浏览用户访问时,先判断对应的静态页面是否存在,如果存在,则直接Server.Transfer到静态页面,否则生成静态页面内容后再Server.Transfer过去。

有人会问:这有什么目的??

其实我也不能正确地回答你如此做是否可行,只是我个人觉得:一来,将管理用户生成静态页面的操作权限留给了第一个访问用户,避免了一段时间内大量地占用服务器资源,恐怕此时别想让网站被流畅的浏览(直到静态页面全部生成,使服务器资源被释放);二来批量删除页面的效率肯定比批量读取数据库记录并生成静态高很多吧;三来嘛,不用生成全部内容,没人关心的内容就不生成静态,节省空间(玩笑话了)。

时间: 2024-10-24 13:41:30

百万数据级的网站静态页面的生成方案的相关文章

求论坛或购物网站等类似的网站静态页面源代码,有的给下,谢谢!

问题描述 求论坛或购物网站等类似的网站静态页面源代码,有的给下,谢谢!简单复杂的都可以,呵呵!有的好心人,请发到邮箱:jzm7679@sina.cn谢谢!!! 解决方案 解决方案二:论坛推荐www.phpbb.com购物网站推荐www.prestashop.com都是开源的,而且有许多官方插件,供直接下载学习测试.解决方案三:你随便到几个这样的网站,查看代码,保存一下,或直接用"文件"菜单的保存页面.不就行了.

网站静态页面生成及网站数据采集的攻防

采集|静态|数据|页面 本着互联网共享主义精神,特写此文献给建站新手,授人以鱼,不如授人以渔,本文所讲的只是方法和原理,希望大家看完此文,能够从中得到些帮助和启发. 本文从一个ASP程序员的角度用大量实例祥细介绍了动态网站如何生成静态页面原理,又从一个采集程序开发者的角度去祥细介绍了网站数据采集的原理及功防策略. 关于网站生成静态页面,为了让本文读者容易理解,文内列举了目前常用的多种生成静态页面的方法,其中用了很多的实例代码进行说明. 关于网站数据采集攻防,作者本身是一个采集程序的开发者,同时作

.net生成静态页面并生成分页代码

int num = 0;                string sql = "insert into news(title,content,bigclassname,[user],infotime,hits,upfile) values(@title,@content,@ddl,@name,@time,@num,@filename)";         oledbparameter[] para = new oledbparameter[] {         new oledb

SEO老鸟总结网站死页面的处理方案

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 SEOER都知道网站死链接是网站优化的大忌,尤其是网站信息量越大,页面越多这种情况就越明显,对网站整体的SEO优化效果也是影响很大,可以称之为"搜索引擎优化之痛",所以我们无论何时何地都是避免死链接的存在. 现在关于死链接的一些概念和介绍的文章基本都是知识点很散,今天我就系统的说一下各种情况下的死链接以及处理的方式,希望对

如何生成静态页面的五种方案

静态|页面 方案1:/// <summary>/// 传入URL返回网页的html代码/// </summary>/// <param name="Url">URL</param>/// <returns></returns>public static  string getUrltoHtml(string Url){errorMsg = "";try{System.Net.WebRequest

SQL Server静态页面导出技术2

server|静态|页面 本段文章节选自铁道出版社新出的<用BackOffice建立Intranet/Extranet应用>一书(现已在海淀图书城有售).本书详尽地讲述了如何使用微软BackOffice系列产品来组建Intranet/Extranet应用.通过它您将掌握NT的安装和设置.使用IIS建立Web站点.通过ILS建立网络会议系统.用Exchange建立企业的邮件和协作系统.用SQL Server建立Web数据库应用.用Proxy Server建立同Internet安全可靠的连接.用M

ASP.NET动态生成静态页面的实例代码

生成静态页有很多好处,可以缓解服务器压力.方便搜索网站搜索等等,下面介绍一下生成静态页的实例代码,有需要的朋友可以参考一下   最近突然想把项目中新闻管理模块做成静态页,在网上找到很多很好的文章,在这里记录一下,现在只是实现静态页面的生成并没有实现分页功能.其主要原理就是读取数据库的数据然后替换掉静态模板页的内容. 首先制作一个模板页,暂时命名为template.htm,示例代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit

谈谈生成静态页面的一些经验

静态|页面 作者: q3boy静态页面的生成一般有这么几个思路了..1.程序编写过程中.不使用直接输出的语句.而时将所有的输出连接至输出字符串,输出完成后.再直接将输出字符串内容写入文件2.编写中按照正常的方式编写.通过ob函数组捕获输出.然后将输出写入文件3.使用模板类时,用get/fetch一类的方法获取输出.并写入文件. 具体实现上又有这两种方法1.管理后台添加记录时,直接生成目标html页面,并且前台调用连接直接指向生成的html页面.这种方法程优点是程序效率最高.服务器负荷轻,不过由于

如何在静态页面中显示文章被阅读的次数

静态|显示|页面 在文章发布系统中采用服务器端生成静态页面的方法可以有效减轻服务器的负担,特别是对大流量网站非常有效.但是既然生成的是静态页面,生成时是什么样,显示就是什么样了,对于文章常见文章被阅读次数怎么显示呢? 经考虑,可用如下方案解决: 生成静态页面时会产生一个文章的id存到数据库中,那么我们在制作文章的模板的时候就可以在这个文章的id上做文章,文章模板包含以下语句:   <SCRIPT src="counter.asp?newsId=<%=#newsId#%>&quo