页面执行疑问.

I_NBFA 2009-04-07 08:58:09
在asp.net中, 如果数个客户请求一个页面, 服务器会不会中断页面执行?
比如短时间内user1请求page.aspx, user2同样请求page.aspx, 如果page.aspx需要执行较长时间,
那么服务器会不会在执行user1请求时突然中断而去响应user2的请求? 回头再来执行user1的请求?
也就是类似多线程的概念.
如果服务器会这么做, 假设page.aspx会修改数据库, 并且牵扯到同步的问题, asp.net是如何解决的?
...全文
99 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hchxxzx 2009-04-09
  • 打赏
  • 举报
回复
也就是页面已经执行完毕了可数据库操作还没完成? 那么这难道不可以认为页面被中断了么?
---------------------
不是页面已经执行完毕了,是在页面还未执行完毕之前,这个更新数据库的动作还未完成.
按照我们来看,一个update事件的执行可以需要0.01秒的时间,虽然短,但还是有一段长度;如果访问的人足够多,在这0.01秒里面可能刚好有N人访问,写数据库从0.001秒开始,到0.01秒结束,在这段时间里面,新访问者当然还处在允许访问阶段,因为确实从数据库中找不到不允许访问的标志.

这个跟中断页面没有关系.
I_NBFA 2009-04-08
  • 打赏
  • 举报
回复
hchxxzx的情况就是我发问前所想到的最可能的原因, 不过上面几位已经说了页面执行不会中断,
既然不会中断怎么会发生这种情况呢? 难道页面执行完毕后数据库的操作可中断?
也就是页面已经执行完毕了可数据库操作还没完成? 那么这难道不可以认为页面被中断了么?
不然代码还没执行完怎么能说页面结束了?
hchxxzx 2009-04-08
  • 打赏
  • 举报
回复
有可能是在USER1访问时,X=19,此时USER1需要修改使X=20,但在修改还未完成时,USER2来了,一检测,仍然是19,因此也可以访问.
如上,这是由于数据库修改操作存在一定时间的问题,在多用户访问条件下就会出现这样的问题.
如果只是某个页面需要这么做,那么,你可以创建一个全局变量,来记录这个数值,在未写入数据库之前,先修改此变量,再修改数据库.
由于修改变量的时间比修改数据库的时间短暂,应当可以很大程度上缓解这个问题.
I_NBFA 2009-04-07
  • 打赏
  • 举报
回复
谢谢大家, 没写过B/S, 不太懂, 其实我想最终解答的疑问是这个.
比如一个页面, x.aspx, 功能是修改数据库中字段x, 使其+1, 条件是x不能大于20.
假设现在x = 19了, 那么user1访问x.aspx, 仅接着user2也访问x.aspx.
因为请求不会中断, 那么user1访问有效, user2就失败了.

问题是在服务器超级忙的时候, 多个用户同时访问x.aspx会造成x超过20.
大家分析下这1般是什么原因造成的?
I_NBFA 2009-04-07
  • 打赏
  • 举报
回复
谢谢大家, 没写过B/S, 不太懂, 其实我想最终解答的疑问是这个.
比如一个页面, x.aspx, 功能是修改数据库中字段x, 使其+1, 条件是x不能大于20.
假设现在x = 19了, 那么user1访问x.aspx, 仅接着user2也访问x.aspx.
因为请求不会中断, 那么user1访问有效, user2就失败了.

问题是在服务器超级忙的时候, 多个用户同时访问x.aspx会造成x超过20.
大家分析下这1般是什么原因造成的?
wuyq11 2009-04-07
  • 打赏
  • 举报
回复
不会,数据库操作可通过锁机制实现
hchxxzx 2009-04-07
  • 打赏
  • 举报
回复
不会中断
fengjian_428 2009-04-07
  • 打赏
  • 举报
回复
同时请求一个页面不会中断。(如果会 CSDN和google早就挂了)

数据库的同步问题用事务来解决就好了,设定合适的事务级别,杜绝脏数据

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧