在我的應用程序中單擊按鈕調用一個視圖,它執行一些數據庫更改,然後重定向到呈現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連續調用
感謝您的回答。它工作得很好 –