asp.net页面间传值使用TextBox或Label存储表的主键值,请问多用户并发操作是否会串值?

chenchen_2011 2014-03-18 05:49:36
第一次使用ASP.NET开发一套WEB应用系统,诸多WEB开发的很多细则都不了解。

在客户的使用过程中,出现了变量串值以及操作当前ID值影响到其它ID的问题,经检查程序,把问题根源基本锁定在程序中使用静态变量的原因上

因为系统应用的特殊性,大量数据的保存采用的是AJAX的异步保存提交方式

多用户并发产生的保存数据错乱问题,在页面间传值时考虑采用TextBox或Label来存储表的主键值,如果是静态变量在并发时很有可能会造成保存的错乱,请问高手这种方式在并发操作时是否可行?

分数不多,还想咨询个问题,在JS函数中AJAX异步调用提交数据后,如何刷新当前页面数据比较好?
目前采用的方式是延迟一秒重新载入当前页面,window.setTimeout(function () { window.location=window.location;}, 1000 * 1)

...全文
578 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenchen_2011 2014-03-18
  • 打赏
  • 举报
回复
引用 2 楼 bdmh 的回复:
首先不用timer,ajax提交数据后,如果成功,会触发success的function,在哪里处理页面更新 对于id重复,如果不想考虑并发问题,就设置一个不会重复的编号规则
后台代码: public static string TableID TableID= Request.QueryString["id"] 前台代码的调用<%=TableID%> 两个用户进入不同TableID的编辑页面,保存时因为static 的原因,并发操作时是否会造成update到另一TableID的值,目前确实发生过这样的情况,但非常少,主要的问题就是想解决这个
chenchen_2011 2014-03-18
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
对于你说的所谓“串值”,应该本着务实的态度。对于这类现象不要过分苛求(加入性能更重要,或者完全可以在业务上有另外一套整理数据流程),同时对于必须要即时保证只有一个线程操作的步骤要使用lock进行同步。加锁通常会迅速降低系统效率,所以只在必要时采用。 对于异步编程,你应该学会在“回调”中去进行处理。根本谈不上使用什么Timer。
--------------------- 一直以来开发的都是C/S的程序,对WEB编程只是现拿现用 举例说明缘由可能比较好理解,最担心的问题就是,多用户并发操作同一页面,传参的ID值因为采用静态变量的方式进行保存和调用,偶尔会导致保存数据时修改到了另一ID值的数据,这是最不能接受的状况 我的理解是否采用TextBox或Label传参的主键ID值会避免掉这一状况?
bdmh 2014-03-18
  • 打赏
  • 举报
回复
首先不用timer,ajax提交数据后,如果成功,会触发success的function,在哪里处理页面更新 对于id重复,如果不想考虑并发问题,就设置一个不会重复的编号规则
  • 打赏
  • 举报
回复
对于你说的所谓“串值”,应该本着务实的态度。对于这类现象不要过分苛求(加入性能更重要,或者完全可以在业务上有另外一套整理数据流程),同时对于必须要即时保证只有一个线程操作的步骤要使用lock进行同步。加锁通常会迅速降低系统效率,所以只在必要时采用。 对于异步编程,你应该学会在“回调”中去进行处理。根本谈不上使用什么Timer。

62,243

社区成员

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

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

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

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