在我的应用程序中单击按钮调用一个视图,它执行一些数据库更改,然后重定向到呈现html的新视图。当用户通常点击链接时,他会在两秒钟内意外点击两次或三次。如果同一个呼叫在不到10秒钟前完成,我想阻止视图呼叫。当然,我可以通过检查数据库来做到这一点,但我希望通过在django中使用一些装饰器来获得更快的解决方案。Django视图 - 块连续快速调用
1
A
回答
2
这应该有所帮助。这是一个JavaScript来禁用点击按钮,在操作完成后启用它。
$(document).ready(function() {
$("#btn").on("click", function() {
$(this).attr("disabled", "disabled");
doWork(); //this method contains your logic
});
});
function doWork() {
alert("doing work");
//actually this function will do something and when processing is done the button is enabled by removing the 'disabled' attribute
//I use setTimeout so you can see the button can only be clicked once, and can't be clicked again while work is being done
setTimeout('$("#btn").removeAttr("disabled")', 1500);
}
更多信息here。
2
点击它后,您应该使用JavaScript禁用该按钮。
这样用户无法多次触发视图。
1
不,你不能在Django中使用装饰器来做到这一点。
您的视图文件中的方法应该是告诉什么显示在您的屏幕上。而创建模板文件是为了告诉Django 你想如何显示它们。
你想让Django在同一视图上不连续计数两次。
的问题是:
你是什么意思的 “连续” 吗?我应该点击多快以使其“不连续”?如果我编写一个脚本来执行点击操作,该怎么办?那么你会如何定义连续的?
即使你确实使用一些黑客做了上面的部分,接下来的问题是要区分来自不同用户(到该视图)的请求。你如何区分它们以确定特定用户的“连续性”?
为什么做不必要的改变来做所有这些事情?
Django应该和其他东西一起使用。我已经学会了这个难题。使用Javascript是唯一的方法,没有任何问题。
客户端,点击一下鼠标!禁用。非常快,你有在池中的请求。
这样做很简单。请参阅以下链接获取更多信息:
+0
感谢您的答案 –
相关问题
- 1. 快速连续按下WP7
- 2. 如何在快速渲染视图中调用节点模块?
- 3. Mac OSX快速调整视频视图
- 4. WPF Image的连续(快速)更新
- 5. 通过快速连续的AJAX调用显示结果
- 6. ZendAMF - 函数调用快速连续失败
- 7. 两个连续的快速调用WF:以相反的顺序
- 8. 处理快速连续的函数调用 - Javascript/underscore.js/node.js
- 9. 快速着色不连续的单元格块
- 10. 快速连续检测点击事件
- 11. 快速删除连续重复python
- 12. 快速连续点击不同的NSButton
- 13. 快速关闭视图
- 14. 快速js测试视图
- 15. 快速调用Asynctask
- 16. 使用Jade快速更改视图
- 17. 寻找一个月的每一天的开放连续块时间,快速
- 18. 在后台连续快速运行应用程序
- 19. 基于非快速刷新视图的快速刷新物化视图
- 20. 连续列表视图
- 21. 使用QTcpSocket持续快速使用
- 22. Azure:快速更改用于连续部署的分支(github)
- 23. Freshbooks从Django视图调用
- 24. django调用admin.site.register从视图
- 25. 快速图像上传和玉视图
- 26. 在MediaElement中连续播放视频块
- 27. 使用phonegap相机api采取快速火灾或连续图片
- 28. 连续调用requestAnimationFrame
- 29. 连续调用readRemoteRssi()
- 30. PHPUnit连续调用
感谢您的回答。它工作得很好 –