日期:2014-05-16  浏览次数:20892 次

asp伪事务的设想,请指教。

以下均为假设,不知是否可行,请指教。

表table,三个字段ID、name、mark。
-------------------------
ID     name     mark
1      张1      null
2      张2      null
3      张3      null
4      张1      null
5      张2      null
-------------------------

两个页面如下:
1.asp  ——  在页头清空cookies("number")
             查询显示表table的记录,并在最后面附多选框checkbox,value=rs("id")。
             用JS判断checkbox选中的数目,赋值给cookies("number")
           将cookies和数组发送给2.asp
2.asp  ——  接收cookies("number")以及数组
             页头UBound(split(数组,","))对比cookies("number")是否一致
             如果一致则往下执行——用数组循环updata 表table set mark="是" where id=数组中的id
           返回1.asp页面

假设——按照断电对操作产生影响
1、文件1.asp、2.asp以及数据库都放在虚拟主机上
2、租用虚拟主机——空间商都有备用电源保证供电——不用考虑主机方面的断电——只考虑客户端的断电
3、客户端:
如果 在客户端数据已全部发送给2.asp  客户端断电
   (服务器端的)1.asp和2.asp正常运行——没有影响
如果 在客户端数据已全部发送给2.asp  客户端断电
   在2.asp页头对比的cookies("number")与UBound(split(数组,","))不一致——不执行相关操作——似乎也没影响

问题1:不知道这个假设对不对?
问题2:如果这个假设正确的话。还有什么其他因素会影响到操作的一致性?

求指教!


------解决方案--------------------
客户端断电?
这么奇葩的条件,你的设置根本没有必要,只要提交过来的数据就处理,不提交就不处理,这个和客户端断电有什么必要关系吗?你要做的是校验一下发送过来的数据是否完全,不过这个和客户端断电一也没直接关系,因为客户端不可信任,你总是要做这个校验的。