我有結果頁面,其中結果加載了Ajax,我有jq UI滑塊的價格和複選框更改結果生活。在每次更改時都會加載結果,但是當我開始快速點擊複選框和滑塊時,每次都會調用結果,並且在某個時刻停止工作。在每次更改後放置一些計時器都不是我正在尋找的解決方案。Jquery ajax實時結果問題
1
A
回答
1
你需要使用一個定時器,而不是爲每個變化,僅有1全球計時器。每選中一個複選框,移動滑塊等,設置一個500ms的超時提交你的ajax請求。但每次進行更改時,還要清除現有的計時器,並設置一個新的計時器。
這樣,提交只發生在500ms不活動之後。如果用戶點擊開心,定時器每次都會被清除,只有當他們停止點擊後,ajax纔會被提交。
myForm.find('input, textarea, select').bind('change', function()
{
var self = $(this);
self.attr('changed', 'changed'); // -- mark as modified
clearTimeout($(document).data('ajaxTimer')); // -- prevent previous changes from being submitted
$(document).data('ajaxTimer', setTimeout(submitData, 500)); // -- start new timer for submission
});
function submitData()
{
var allInputs = myForm.find('input, textarea, select');
var changedInputs.filter('[changed]');
allInputs.removeAttr('changed'); // -- mark all as submitted
changedInputs.each(function()
{
// gather values here
});
// build your AJAX request here
}
0
在本回答說:Stop AJAX Request using jQuery,您可以指定要求的一些變量,然後如果這個變量被設置,您可以撥打另一個電話之前停止已經掛起的請求。
這樣,生效的結果將是最新的,不應該有混淆。
我貼在這裏,我引用的答案:
var request = $.ajax({
type: 'POST',
url: 'someurl',
success: function(result){}
});
然後你就可以中止請求:
request.abort();
相關問題
- 1. Jquery Mobile - 獲取ajax結果問題
- 2. jquery ajax調用結果緩存問題
- 3. 實時加載結果(ajax)
- 4. jquery ajax實時驗證/超時問題
- 5. jquery結果顯示問題
- 6. jQuery AJAX計時問題
- 7. Ajax/jQuery時序問題
- 8. jQuery Ajax計時問題
- 9. 檢索AJAX結果的問題
- 10. Jquery Ajax問題
- 11. jQuery ajax問題
- 12. jQuery ajax問題
- 13. jquery ajax問題
- 14. Jquery ajax問題
- 15. jquery ajax問題
- 16. jquery ajax問題
- 17. JQuery Ajax問題
- 18. jQuery Ajax問題
- 19. jquery ajax問題
- 20. jQuery Ajax問題
- 21. jquery ajax問題?
- 22. Jquery ajax問題,不斷得到undefined作爲結果值
- 23. Ajax/jQuery實時搜索正在複製輸出結果
- 24. 結果問題
- 25. 在ajax結果爲假後提交表單時出現問題
- 26. jQuery AJAX - 結果分支
- 27. jquery ajax返回html結果
- 28. jQuery的 - 追加AJAX結果
- 29. jQuery UI滑塊 - AJAX結果
- 30. 用jquery解析AJAX結果
那麼你在找什麼解決方案?一個讓人們瘋狂點擊的地方?你應該展示你的代碼並澄清你想要的東西。 – Fosco 2011-06-08 18:48:33