所谓静态或动态网页, 都是指 Server 端的。
何谓动态,即 ASP,PHP 等动态生成的。何谓静态,即 HTML 网页。但对 Client 端来说,只有一个,即 HTML 网页。所以,动态生成后的网页,和传统的静态网页,是一样一样的,并没有本质的区别。
那么,为什么有的网站,采用动态网页,却导致性能低下呢?
例如:论坛中的贴子,采用动态网页,看的人一多,就运行缓慢。
我认为,这不是动态网页的错,而是设计的问题。首先,各种贴子,一般都保存在数据库里。而操作数据库,大多都要锁定。其底层机制我不清楚,但锁定,应该是导致性能低下的原因。何谓锁定,即一个一个的来。一万人访问,一人 0.1 秒,就是 1000 秒,不慢才怪!即使不锁定,从数据库提取数据需要时间,提取数据后生成网页又需要时间。如果省略此两项操作,则可提升性能。
怎样才能提升性能呢?有人采用模板的方式,生成静态网页。但这种作法有个问题:数据与表现耦合。如想改变网页外观,就得把所有的静态网页重新生成一遍。更何况,像访问人数统计之类的即时消息,它是心有余而力不足。
怎样才能做到性能与灵活并重呢?
别忘了,文件早在数据库诞生前,就已经用来保存数据了。我的方案是:将帖子的标题,内容等信息保存到 .js 文件中,再导入 jQuery 库,借助 Client 端的力量,在动态生成后的 HTML 网页中酌情处理。
有个静态网页演示的例子,可到我的 download/code 中寻找:DvBbsDemo。