用XML结合数据库,给服务器减负

作者:殷亮 时间:2007-10-31 09:40:00 

到了今天,数据库已经成了网站的灵魂,可以说,没有对数据进行集中管理就算不上是一个真正的网站。而ASP加数据库,更成了主流中的主流,网站里的用户登录,论坛,留言本都成了它们用武之地,从前用51个文件才能做成的事,现在用2个文件就可以了,但ASP加数据库,却并非完美,尤其是与服务器进行频繁的交互方面。

比如按ASP+数据库的方案,我们完全可以将那位敬业的站长的工作简化为两个文件:一个
数据库文件,记录小说的所有章节;另一个ASP文件,用来读取数据库的内容;当客户端点击“下一章”的时候便可以浏览下一章内容……的确,这看似很直观方便,但不可乎视的是,每当我们浏览下一章的时候,我们的浏览器都会自动自觉地去访问一次数据库,因此,当有访问者耐心地将这本小说读完的时候,我们的数据库已经与它亲密接触了49次了。

那如果同时有N个49次呢?谁还能保证自己的服务器仍然能从容地应付所有请求?特别是一
些提供了搜索数据,将数据分页显示的网站,服务器不堪重负的现象更应该重视,因为查询
结果有N页,就表示访问者遍览所有结果需要连接服务器打N次。

如果现在你说“N次就N次吧,咱无所谓”,那么你应该马上用鼠标点击浏览器的“后退”因为我下面将谈到一些垃圾内容。当然,如果你也想让你的数据库程序变成“N页记录,一次交互”的话,欢迎继续看下去,我们将一起探讨XML与数据库的整合运用。

其实XML并不像许多人想的那样空有名声,而无实际用途。我不知道你是不是也这么想,但在网上很难见到一些真正应用了XML的网站,这是事实。现在,我列出几条独有XML才能实现的案例,希望能够以此证明XML的实用与强大:

1. 1个XML文件 + 1个普通HTML文件 = 49章小说分章显示

适用于那些不支持ASP的普通主页空间,这种情况下XML完全代替了数据库,很经典地实现了数据与排版的分离。XML与HTML完全分工。

2. 1个XML文件 + 1到N个ASP文件 = 留言本/论坛

适用于那些禁用了文件组件FileSystemObject与数据库组件的ASP主页空间,不用文件存取与数据库,用XML照样可以做留言本与论坛,并实现数据库的所有功能。
(我在本论坛发表的“第三种途径-----基于XML的ASP留言板”中,详细地阐述了这一技术,有兴趣的话可以在论坛中搜索此文。)

3. 1个数据库 + 1个嵌入了XML的ASP文件 = “N页记录,一次交互”

可以说,这几种技术都体现了XML的精髓。特别是第2种技术,XML充分证明了自身的优势——
既有数据库的强大又具备文本文件的轻巧(一个.mdb文件上百K,而一个.xml文件才几k,而且数据库文件修改要借助专门软件或相对应的ASP程序,但xml文件,记事本足矣。)更让人兴奋的是,XML完全可以抛开文件存取组件与数据库组件实现数据的写入读取,甚至新建文件。而我们将要谈到的“N页记录,一次交互”则更是XML对数据库的全面超越。

先看下面这个XML文件:


<?xml version="1.0" encoding="gb2312"?>
<在线播放>
<歌曲>
<歌名>Hello Goodbye</歌名>
<URL>ftp://61.139.37.148/music/songs01/english/beatles/hellogoodbye.mp3</URL>
<演唱者>The Beatles</演唱者>
<歌词>You say yes, I say no</歌词>
</歌曲>
<歌曲>
<歌名>Yesterday</歌名>
<URL>http://www.mayia.com/beatlescom/beatles/mp3/mp3/yesterday.mp3</URL>
<演唱者>The Beatles</演唱者>
<歌词>Yesterday, all my troubles seemed so far away</歌词>
</歌曲>
</在线播放>

试试看,用记事本编辑一下这个文件,并保存文件名为songList.xml,然后用IE浏览器打开
这个文件,如果没有语法错误,即可在浏览器中显示XML所独有的树状页面。

标签:xml,数据库,asp,服务器
0
投稿

猜你喜欢

  • JavaScript代码着色器

    2010-01-22 15:53:00
  • Ubuntu下设置mysql自动备份

    2010-10-25 20:25:00
  • 表单验证中时间起止判断的递归处理

    2009-12-16 19:27:00
  • 在Asp程序中取得表单所有内容的方法

    2010-04-24 16:07:00
  • javascript 45种缓动效果(二)

    2009-09-19 18:53:00
  • MySQL分区的功能和限制讲解

    2010-10-14 14:03:00
  • 自己写的一个PJBlog中可以双击输入验证码的修改

    2009-05-17 10:51:00
  • MySQL 集群配置

    2009-04-20 14:15:00
  • ASP Crazy 模版操作类(最简单的模板类、仅提供交流)

    2011-03-17 11:06:00
  • 经验总结:ASP与存储过程解析

    2008-11-07 13:33:00
  • ASP在线转flv+缩略图

    2007-08-27 16:18:00
  • IE6局部调用PNG32合并图片

    2009-03-11 21:24:00
  • 如何取得MYSQL中ENUM列的全部可能值

    2009-07-30 08:53:00
  • 用户体验如何提升阿里巴巴的商业价值

    2009-07-23 20:29:00
  • DW自带的行为制作弹出菜单

    2008-05-16 11:38:00
  • 用一条SQL实现:一行多个字段数据的最大值

    2008-12-31 13:37:00
  • 精细分析 SQL server服务器的内存配置

    2009-01-19 13:56:00
  • Google的产品设计指导思想

    2008-03-23 14:15:00
  • asp如何防止计数器刷新计数?

    2009-11-22 19:19:00
  • SQLServer 2000 升级到 SQLServer 2008 性能之需要注意的地方之一

    2012-02-25 19:44:26
  • asp之家 网络编程 m.aspxhome.com