★★★★ 我的项目被K了,总结了一些问题,欢迎大家讨论和关注。 ★★★★
项目是一个B/S的投票系统。
很简单:
Asp+Access2000 用ADO进行的连接。
测试环境:
局域网
服务器:Win2K Server+IIS
客户端:IE6
20个客户端同时进行
问题在于
1、对结果的反馈上:
我是用XMLHTTP来做的无刷新显示页面,说白了,每个客户端每秒都要对数据库进行一次Select,并返回结果集,然后格式化输出。
如果只是要这个时时显示的效果还好啦,代码在客户端可以稳定运行。
2、数据提交:
其实数据量并不大,用JScript操作,对投票的结果用Array保存,toString后Post到一个Asp页面,写入数据库!考虑到并发性的控制,我用Con的事物处理来做的!
可是即便如此,当有3-4人同时提交数据库后客户端就处于暂时的假死机状态!而后,返回的是HTTP超时,或者是脚本超时!
3、显示统计结果:
提交数据到数据库后,如果可以正常Conn.CommitTrans后将自动跳转到显示统计结果的页面。
这个页面是个静态页面,用XMLHTTP没0.8秒取一次数据。
-------------------------------------------------
以上描述了问题的现象
下面是我总结的一些问题:
1、用Access Jet Engine进行连接的mdb文件,它的并发处理能力到底如何?
2、我不愿相信,如果只有10几个用户一同提交数据数据库就挂了!所以我又猜想是我的IIS设置上有问题,但是问题究竟在哪里我可就真的不晓得了。
3、发生错误只有在提交时才发生,但是我的的确确用ADO的事物处理来做了!但是如果是脚本超时,那么根据Err的情况来进行事物的提交看来是不可靠的了,但是,这样的确保证一个客户提交到数据库的数据是完整的,不会INSERT了100条,确只有几十条被存到数据库。所以事物处理还是必要的。
4、XMLHTTP到底是不是一个值得应用的技术。
因为20个客户端每个都是0.8秒从服务器的数据库里SELECT出符合条件的数据再走HTTP返回来,这样服务器的压力岂不是很大,就因为这样可以无刷新,但是代价太不划算了。
5、关于HTC的问题。
如果用Asp动态生成的页面里,比如在需要style的<TD>标签里写style,再写Jscript的处理是可以的,但是那样感觉上代码很笨重!所以我用HTC进行了封装。但是,一个比较有意思的事情发生了,在客户浏览器上,显示页面时,鼠标不断的闪动[确切的说是鼠标在正常和后台两个形状之间频繁交替]。这样虽然是代码的可维护性高了,但是显示的速度慢了。对次,我不清楚造成这一现象的原因,难道是因为对于HTC是外连接的文件所以没用到这样一个class时,都要连接一次?如果这样的话,那只是影响显示速度而不影响传输速度是吧。而且,毕竟这样的两个文件比一个个的写style的一个页面文件要小!
以上5点是我这几日来总结的一些问题,希望大家积极讨论,并帮我解决。
对于4、5两点我真的不是很通,所以可能是我自己的认识不够或错误。请予以指正!