0
我正在使用jQuery.ajax和ajaxQueue。我已經引起AJAX請求兩個事件,問題是:AJAX在請求中使用舊數據
- 兩者都使用相同的數據和操縱它們,
- 有時他們可以同時啓動一個動作(變化的輸入和點擊按鈕) 。
當它們一起啓動時,首先要改變輸入值,其次要在請求中使用新值。不幸的是,在第二次請求我收到舊數據。
簡單的代碼顯示這種情況(不活動,但主要的問題是一樣的):
<input id="in" value="x"><br>
<a href="#">click</a>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="jquery.ajaxQueue.min.js"></script>
<script>
jQuery.ajaxQueue({
url: 'ajax.php',
method: 'POST',
beforeSend: function() {
console.log('long ajax start');
}
}).then(function() {
$('#in').val('y');
console.log('long ajax stop');
console.log('current input value: ' + $('#in').val());
});
jQuery.ajaxQueue({
url: 'ajax2.php',
method: 'POST',
data: $('#in').val(),
beforeSend: function(xhr, settings) {
console.log('short ajax start');
console.log('data in short ajax: ' + settings.data);
}
}).then(function() {
console.log('short ajax stop');
});
</script>
在控制檯我得到:
long ajax start
long ajax stop
current input value: y
short ajax start
data in short ajax: x
short ajax stop
當然應該是data in short ajax: y
。我可以改變什麼來獲得正確的價值?
我已經試過這一點,但它不會改變任何東西。從jQuery手冊:「如果設置爲false,它將強制**請求的頁面**不被瀏覽器緩存」。 – Radzikowski