我想澄清有關AJAX的東西我在想......好奇AJAX是異步的,並調度/定時器事件
AJAX被說成是異步的 - 如果你希望它是 - 這意味着,如果一個javascript在頁面加載時運行,並且執行AJAX調用時,頁面將繼續加載,而服務器處理AJAX請求...因此,假設它可以被比作僞並行性,那麼安全嗎?
現在,關於兩個不同的javascripts因此做一個AJAX調用呢?也就是說,當頁面加載時,它會遇到兩個js函數,一個接一個地發送一個AJAX調用。由於它們是不同的js函數/或兩個不同的js文件,它們是否必須等待函數返回之前才返回?我認爲是這樣的...
最後真正的問題,我有...如果我有一個js函數調用,並在該函數我觸及兩個AJAX調用,然後將他們半同時處理...因爲我在我的網頁上嘗試了一些東西,偶然發現了兩個AJAX調用,我認爲這是我產生意想不到的結果的原因。不幸的是我在匆忙交付,所以我沒有追求,但我想知道,如果它像世界,因爲這將是某些情況下非常方便...
Somethign這樣
function finalizeReservation(){
var request = $.ajax({
type: 'POST',
url: './scripts/php/reserve.php',
data: {
},
dataType: "json"
});
request.done(function(data,textStatus,jqXHR) {
});
request.fail(function(jqXHR, textStatus, errorThrown) {
});
var request2 = $.ajax({
type: 'POST',
url: './scripts/php/reserve.php',
data: {
},
dataType: "json"
});
request2.done(function(data,textStatus,jqXHR) {
});
request2.fail(function(jqXHR, textStatus, errorThrown) {
});
}
很好奇。
我一直在想,因爲我有一個記錄預訂的網頁。在確定預訂之前,雖然客人可以看到細節並思考問題。在那段時間,數據庫中的插槽被設置爲掛起狀態,並使其他用戶無法使用,因此它們不會在競爭條件下發生衝突或進入(例如,在考慮其他情況時,另一位用戶最終確定它,所以當他試圖自己完成時,他不能或者如果代碼中的粗心也會完成它)。問題出在客人行爲上,儘管我試圖捕獲刷新,反向頁面,退出標籤,關閉窗口類型的所有事件,所以如果客人由於某種原因不關閉形成正確的方式(取消)並非全部都在所有瀏覽器中捕獲。所以我儘管在服務器上設置了一個時間限制,如果它超過了它並且狀態仍然處於等待狀態,那麼狀態就會反轉爲空閒狀態(我有一個分鐘計時器的形式,一分鐘後它會自動關閉並釋放插槽) 。問題是,託管服務器不支持chron作業,儘管我對它們瞭解不多,所以我不確定它們會有多大的幫助,而mysql不支持調度程序。 所以我想做兩個Ajax調用,一個是定時器,在一段時間後會檢查插槽的狀態,並採取相應的行動。
任何想法表示讚賞。 對不起,很長的文章。
你忘了說出乎意料的結果了嗎?或者至少,不清楚;) – dbf