在现在的项目中,最早是采用大部分静态页面,再辅以动态页面的设计方案来提高整个站点的访问速度,这也在是很多门户站点的做法。但是从实施的效果来看,这样的方案并不适合我们,原因:
1)我们的数据更新频率较快,特别是产品的价格等实时性很强的信息,每一次修改都要涉及到详细信息页面的重新生成,这样造成的系统维护量加大,更新数据的工作量非常大。这是一个非常大的成本,而且在页面被访问时还无法生成覆盖原文件。
2)所谓的静态页面,在我们的这里已经变了味了。我们要求在静态页面加载很多的动态数据,甚至是执行动态的行为操作。这就导致了我们需要使用更加复杂的技术来实现这样的功能。而这样导致的后果是我们使用各种各样的“拼凑”手法来现实需求,有可能一个静态页面要包括好几个的动态页面,这样效率和速度上都是事倍功半的。可以说静态页面的意义单单仅是一个静态的后缀名展现了。而很多人认为静态页面可以更加容易的被搜索引擎搜索到,其实不然,搜索引擎根本就不关心你的页面是动态的还是静态的,关键是在友好的URL地址。
3)如上所述现在的静态页面的速度已经没有优势了,那动态页面是不是还有可优化的呢?答案是肯定的,以前大家都忽略了一项技术,页面缓存技术。页面缓存的一个重要特点就是大减少了同样信息页面的解析次数,从而大大减少了请求时间。它会把已经解析好了的动态页面的HTML存放在内存当中,以后每个用户访问相同的页就直接从内存中读取所需的HTML代码,可以说速度上完全可以与真正的静态页面相媲美的。最关键的优势在于,它非常易于更新,可以通过设计过期依赖等缓存策略,或者重启一下服务器就可以更新所有产品信息页面了。而避免我们再重新去生成静态文件的工作。这点也是目前的数据更新工作存在的最重要的缺陷。
4)页面加载比较慢还有一个重要的因素,就是页面的设计。这个非常重要,哪些信息需要先加载,哪些部分之后再加载。之前的页面在加载的时候总是先出现左边一点点的信息,而右边信息是重要内容,而且是静态页面的内容,却总是在最后被加载出来,这个就感觉页面非常非常的慢了。因为页面加载顺序是与代码在页面的位置是息息相关的,而与页面的物理结构无关(所谓“物理”,就是视觉效果的结构。),在前面的代码总是会先被执行的。注意到这一细节可以给我们很多的启示。
另外,到现在还不明白,像新浪,Sohu的门户站点,他们是如何更新新闻的,难道也要生成那么多的新闻页面吗?关于如何提高网站的速度,欢迎大家提出自己的看法。还有一个问题,在网页中,最中文站点的最佳字体该用什么比较好,用宋体在有的浏览器好像有问题。