静态网页自动生成技术的设计

      无论采用哪种网页开发技术,目前的常规做法都要访问数据库。以一个新闻栏目为例,在计算机中的处理过程如下:客户端发出打开新闻栏目请求,服务器接到请求后,连接数据库,找到对应栏目所在的数据库表,检索出符合请求条件的新闻列表,进行适当的处理后,发送到客户端,关闭数据库连接;如果客户端需要浏览某一条新闻内容,客户端要将该条新闻的ID号发送到服务器,服务器再次连接数据库,根据ID号从数据库取出新闻内容,发送到客户端,关闭数据库连接。从上述分析过程可知,常规做法中,浏览一条新闻,需要访问服务器两次,服务器要访问数据库两次,在一般的小型网站中,这种频繁的访问服务器和数据库是可以接受的,但在具有一定规模的网站和用户相对较多的情况下,服务器的负担会很大,最终导致响应速度太慢,网站性能不容乐观。

       为了解决上述问题,采用动态生成静态网页的技术,避免了服务器两次访问数据库的开销,可以大幅度提高系统的性能。

      自动生成静态网页是本系统的主要特点,是实现系统性能要求的关键技术。
      目前,常见的静态网页生成技术有以下两种:
      I/O流输出。其基本原理是:将数据库中的数据取出,根据模板、或者模拟客户端的访问,生成HTML文档。其缺点是,编程复杂,如果一个网站有很多栏目,比如我做的一个系统有76个详细栏目,每新增一条新闻,都要进行相应栏目信息的修改,其复杂程度是可以想象的。

      XML架构。其基本原理是:由数据库或是专门的程序生成XML文档,通过XSL样式呈现给用户。 

      我所做的系统没有采用上述两种技术,而是使用了Ajax技术与Json文档相结合的技术。下面先对Ajax技术和Json做一些介绍。

      Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)这个名词是2005年2月才正式出现的,是指一种创建交互式网页的开发技术。它包括以下多项技术:客户端脚本语言JavaScript,异步数据获取技术XMLHTTPRequest,数据互换和操作技术XML、XSLT,动态显示和交互技术DOM,基于标准的表示技术XHTML和CSS等。它的最大优点就是不必刷新整个页面,就能对页面进行局部刷新。局部刷新在网页的设计中是很重要的,比如一个新闻网站有导航栏,导航栏中有图片、动画、文字等,当点击导航栏中的某一条目时,显示这一条目的内容,传统的网页设计中,要刷新导航栏的内容和所选择条目的内容,采用Ajax技术后,导航栏的内容不用刷新,只需刷新所选条目的内容,这样节省了网络带宽,提高了网页的加载速度。Ajax技术的另一个优点是可以根据需要灵活地选择异步处理和同步处理。在传统的网页设计中,采用同步处理,客户端要等服务器处理完毕,才可以进行后面的工作,采用Ajax技术的异步处理,客户端发出处理请求之后,可以做其它的事情,服务器处理完毕,直接将结果呈现给客户端。

       从Ajax的字面理解(Asynchronous JavaScript and XML),Ajax只能使用XML文档进行数据交互,事实上Ajax还可以使用其它格式的文档进行数据交互。Json就是其中一种。XML和Json都是一种文档格式,XML格式统一,是一种标准,被作为一种“共同语言”在不同的平台或电子商务中进行数据交换,具有广泛的应用。但XML有着自身的缺点:数据量相对庞大,解析XML文档复杂,并且客户端和服务器端的解析方式不一样,需要写不同的代码,不容易维护。Json(JavaScript Object Notation,JavaScript对象声明)是一种轻量级的数据交换格式,采用“对象名:值”的方式定义数据,减少了标签的数量,同时使用JavaScript自带的eval()方法对文档进行解析,提取数据十分简单。Json文档的定义格式参见http://www.json.org/。

       通过对Ajax技术和Json的介绍,静态网页自动生成采用以下设计。
       每个栏目生成一个Json格式的索引表,索引表中包含该栏目文章的标题、文章对应Json文档的URL,每篇文章都有一个Json文档,该文档包括文章的相关信息和文章内容。当用户访问该栏目时,通过Ajax技术的XMLHTTPRequest请求读取该栏目的索引表(Json文档),从索引表中获取文章索引信息,并在浏览器中将栏目文章的列表显示出来,当要查看某篇文章内容时,通过索引信息中的URL,发出XMLHTTPRequest请求,读取该文章对应的Json文档,在浏览器端得到完整的Json文档后,通过JavaScript的eval()方法对该文档进行解析,并将解析的结果在HTML文档中指定的位置显示出来。当添加文章时,需要更新栏目索引表,同时生成该文章的Json文档。

       Json文档是以文本文件的方式存储于服务器的磁盘上,客户端与服务器的交互,不用访问数据库,减轻了服务器的负担,同时,Json文档格式的简洁,减少了数据量,与纯HTML文档相比,具有更好的效率。当然,设计只是提供了一种解决问题的思路,在实现时,应充分考虑索引表的大小对系统性能的影响,对索引表的大小要进行限制,文件太大时应使用文件分割技术,各文件之间通过链表的形式相互访问。

       由于笔者水平有限,难免有错误,请读者批评指正。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值