多线程+Ajax技术 实现Web站点生成静态html页面 客户端进度条精确显示进度
记得03年的时候, 当时使用asp、php做动态网站的时候,有些时候需要批量生成所有的静态页面。当时实现这个效果的方法只有2个,
一个是在一个请求中将所有的静态页面循环的生成,但是对于没有多线程的asp和多线程不怎么成熟的php来说,
就在处理请求的这个线程中生成如此多的页面, 往往就会超时!
所以就有了第二种方法, 那就是每次请求只生成也个页面, 然后跳转网页,带下一条内容的编号作为参数。
这个方法虽然解决了复杂请求超时的问题,但是得到的效果是网页不断闪烁!有音箱还有“啪啪”的声音!
如今早已.net时代了, 最近又有朋友们在谈及这个问题。所以我在电脑里头翻出来几年之前的一点代码, 分发给大家。当然代码的质量可能不是太高,只是个demo而已, 给大家参考参考。当然在.net里面的实现就是 综合运用多线程和Ajax技术,实现出类似于windows程序的完美效果。
下面是简单的截图
图一:
图二:
当然也没有多少关键代码, 简单的copy一点上来, 还是把整个工程放在server上让大家down吧!
核心的ajax的东西,当然要 ActiveXObject("Microsoft.XMLHTTP");
然后是多线程, 点了build按钮之后要 Thread t1 = new Thread(new ThreadStart(生成页面的方法));, 当然这里一定要注意,在这个线程的方法里面不能使用
httpcontext对象。 当然具体怎么做, 看看代码就知道了!