社区
C#
帖子详情
WPF应用程序如何杜绝骚操作
货郎大叔
2020-08-24 08:15:50
一个WPF应用程序,一个TabControl,有几个TabItem,切换TabItem的时候,都会访问云数据库,以显示数据。为了防止用户恶意点击,给服务器造成压力,一般采取什么方式来杜绝?
...全文
378
10
打赏
收藏
WPF应用程序如何杜绝骚操作
一个WPF应用程序,一个TabControl,有几个TabItem,切换TabItem的时候,都会访问云数据库,以显示数据。为了防止用户恶意点击,给服务器造成压力,一般采取什么方式来杜绝?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wanghui0380
2020-08-24
打赏
举报
回复
同样的道理,逻辑弄清楚了 技术上使用限流,连续操作不理,只把动作存着。你稳定不动了,在拿最后一个。(比如我可以用rx.timeout 和last做)
lich2005
2020-08-24
打赏
举报
回复
尽量利用缓存设计来应对这种密集操作,也就是一些数据可以先下到客户端,客户端本地去读取。有需要点一下刷新之类的按钮再去服务器上读取。实际上数据库查询的时候也会有缓存查询,如果数据库性能不差的话,应该能应付这种情况的。
wanghui0380
2020-08-24
打赏
举报
回复
so,逻辑弄清楚了,技巧上其实无所谓。 这里你用mutex互斥也一的效果
晨易夕
2020-08-24
打赏
举报
回复
是的,这种需求与WPF没有技术上的联系。 就比如拿前端的防抖(debouncing)和节流(throttling)来说,优化的应用场景就十分广泛。 你这儿为了防止用户骚操作乱点增加服务器压力,可以使用防抖优化。即当用户点击切换之后,延迟一定时间后再调用后台接口,如果在这个延迟时间内用户又不断点击切换,就取消之前准备要调用接口的操作,换成调用新操作的任务。 建议先去了解下
防抖(debouncing)
和
节流(throttling)
的理念。
wanghui0380
2020-08-24
打赏
举报
回复
伪代码 tab1load锁 async task tab1load方法() { if(tab1load锁.钥匙==0) retrun; await tab1load锁.异步使用中 tab1.加载状态=加载中 await 加载远端数据 tab1.加载状态=加载完毕 tab1load锁.归换钥匙 } 这样无论他怎么切换,前一个没执行完毕,后一个直接return出去。so,我可以让你切换UI,但我不会重复执行动作
wanghui0380
2020-08-24
打赏
举报
回复
问题: 1.客户会来回操作,可以不让他来回操作,放入加载模态框,不加载完毕不准下次操作 2.如果1你觉着逻辑不合理,ok,我们还是允许他切换,只是加锁。你上次访问没完成,进不了下一次的 查询锁:没钥匙直接弹框告诉客户,正在等待上次请求,有钥匙拿到钥匙 await 一次访问 归换钥匙 3.后端幂等性操作,每个操作只要条件一样,他不会影响变化。那么缓存依赖,那么还是加锁直接返回正在操作请勿重复请求(语义上是“条件一样,我直接返回缓存的结果,如果语义不一样,我执行完了回告诉你结果,但我不会重复执行动作,因为已经有了一个一模一样的条件在运行”)
蜗牛慢慢趴
2020-08-24
打赏
举报
回复
界面已经这样设计了,就没啥大问题吧?用户骚操作一下服务器就受不了了,建议更换服务器
datafansbj
2020-08-24
打赏
举报
回复
这种需求与 WPF 没有半毛钱关系。
通常情况下,为防止恶意或机器人操作,服务端对一个会话里的请求会加上判断,如果请求过于密集(频繁),可加延迟处理,或直接返回错误提示。当然也可在客户端增加这些逻辑处理。不过这种处理是双刃剑,处理不好用户体验度变差。
本质:你根据什么判断是误操作还是正常操作?如果依据本身就不准确或不严谨,那么任何处理方法都不会带来完美的结果。
鸡窝里的毛
2020-08-24
打赏
举报
回复
不是实时数据的话,在程序运行时预加载。
threenewbee
2020-08-24
打赏
举报
回复
把调用的代码放在一个单独的类中。
每次访问,都判断下距上次访问的时间,如果<xxx 秒,不执行。
不要直接客户端连数据库,应该在服务器上部署web api,通过 web api由服务器载访问数据库
c#.net 实现课程管理系统功能 三层架构
C#.NET是一种广泛应用于开发Windows
应用程序
的编程语言,而三层架构则是一种设计模式,能够帮助我们实现良好的软件架构,提高代码的可维护性和可扩展性。 首先,三层架构通常包括以下三个主要部分: 1. **表现层...
C#
WPF
界面源码框架:运动控制路径算法总结与分享
C#+
wpf
界面源码框架,总结运动控制路径算法而写,控件源码+模板源码,分享给想入行的朋友们,引你快速入行,大神略过,可用于激光切割,雕刻机,分板机,点胶机,插件机等,本模板主要考虑到各运动控制硬件不同,视觉...
《15天玩转
WPF
》—— 优美的动画详解(完结篇)
这一篇写完之后,以后就用
WPF
写一些小程序了,之后开始算法的学习 . . . 那时少年,万花皆有逐梦时 . . . 文章目录 何为动画? 简单独立动画 2.1 简单线性动画 2.2 高级动画控制 2.3 关键帧动画 2.4 特殊的...
C#
WPF
MVVM大屏看板源码:包含
WPF
编程设计、自定义工业控件、数据库设计与三层架构
在
WPF
中,可以通过继承Control类并重写相关方法来创建自定义控件。// 定义依赖属性,用于绑定数据来控制仪表显示上述代码创建了一个简单的自定义工业仪表控件,通过依赖属性MeterValue来绑定数据,实现动态显示仪表...
WPF
+MVVM架构实战项目详解
️ 高阶技巧:让你的开发效率起飞 前面讲的都是基础功,现在来点“
骚
操作
”,让你在同事面前秀一手。 设计时数据:VS设计器里的“虚拟模特” 谁说一定要运行程序才能看UI效果?我们可以给设计器喂假数据! xmlns:d=...
C#
111,119
社区成员
642,538
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章