asp.net – 防止用户在同一行上工作
|
我在工作中有一个类似于机票工作系统的Web应用程序.一些用户输入新问题.其他工作人员选择和解决问题.所有数据都保存在MS SQL Server 2005中. 用于解决问题的用户进入一个可以查看未解决问题的页面.因为最多可以有二十个人可以在同一时间查看这个页面,所以我必须解决的一个潜在问题是,如果有人选择了其他人在他们的页面加载之后选择的问题,会发生什么. 为了解决这个问题,我做了两件事情.首先,显示要选择的问题的gridview使用AJAX定时器每秒更新一次.一旦选择了一个问题,它最多会消失一秒钟.如果他们在第二秒内选择一个,他们会收到一条消息,要求他们选择另一个. 问题是,AJAX的一部分是发送太多的更新(这是我假设的),它影响页面和数据库的性能.此外,更新不是每秒钟执行.我发现定时器在工作时触发存储过程不可靠. 必须有一个更好的方法,但我似乎找不到一个.有没有人有这样的情况的经验或有建议让多个用户选择相同的记录来维护?我真的不想完全禁用AJAX部分,因为我觉得单独的消息会使应用程序感到失望. 谢谢, 解决方法有两件事情可以帮助您减轻问题.首先,无论您的ajax更新时间段如何,都需要进行案例选择的通知.即使每秒检查也不意味着两个人不能在同一时间点击相同的情况.在这种情况下,其中一个用户需要通知他们的选择是无效的,即使它在选择时看起来是有效的.该通知不需要详细说明;保持光线,有帮助的音调即使在失望的情况下也可以提高用户的感知力.如果您确定已经选择了该记录的用户,那么这不仅可以帮助您的用户日后进行协调,还可以将您的程序的注意力转移到多汁情况下的用户. (事实上,管理层可能希望给您的用户偶尔发生冲突,因为它会激励他们更快地选择案例) 其次,如何显示您的案例的小小调整可以减少选择冲突.添加随机元素以显示顺序和/或过滤每个其他显示的情况将有助于您的用户自然选择不同的情况.人类模式识别和任务选择并不是真正的随机性,所以对演示文稿的微小变化可以等同于选择行为的大变化碰撞机会减少会使您的碰撞通知变得很少(因此您的用户不那么沮丧).如果您的用户可以分为分类,可以帮助确定有用的案例排序/过滤,这会更好. 好的,随着时间的推移,第三件事可以帮助你,如果你保留碰撞发生的日志(有关涉及碰撞的有用的元数据以及选择时间).拥有坚实的碰撞数据,您可以找到什么有效和什么不.随着时间的推移,您可以将您的应用程序磨合到您的实际用例中,并尽早识别潜在问题.没有什么可以放心您的用户,而不是处于问题之上(并且能够解释您的解决方案),甚至在他们甚至知道它存在之前. 使用这些缓解模式,您可能会发现您可以安全地减少您的ajax查询时间,而不会影响用户体验.使用有用的日志记录功能,您可以保证您所进行的任何调整实际上都是正常工作的(或者不是,甚至可能更有用). (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – 使用jQuery验证货币字段的客户端验证
- 什么是使用aspnet_compiler.exe预编译ASP.NET项目的优势?
- 如何以编程方式测量ASP.NET中的字符串像素宽度?
- asp.net-mvc – ASP.NET MVC和混合模式认证
- 当将单字节添加到响应中时,ASP.NET WebAPI输出的速度会降低
- asp.net-mvc – requestValidationMode =“2.0”实际上是做
- .net – 在生产环境中应该使用’Integrated Security = Tru
- 在ASP.NET mvc 4中使用Ninject时是否需要控制器工厂
- asp.net – 将ViewState移出页面?
- asp.net – 使下拉列表项不可选
- asp.net – 如何预编译Web应用程序项目?
- asp.net-mvc – 如何在Html.RenderAction(MVC3)中
- ASP.NET会话超时测试
- asp.net-mvc – 如何在.NET MVC3 HTML表单中的必
- asp.net – 可以从Web API访问HttpContext.Curre
- asp.net – 有没有一个原因,cshtml不受欢迎
- ASP.NET Web服务中的可选参数
- asp.net-mvc – 如何在DropDownListFor的扩展中添
- asp.net-mvc – 将DropDownListFor绑定到字典
- asp.net – URL长度的最佳限制是什么? 100,200
