我需要創建一個小部件,在其中可以輸入一些文本,並且我的服務器api.example.com可以執行並回應。事情是,我需要在客戶端獲得最終的「完成報告」之前多次撥打我的服務器。我目前有以下代碼。如何在一次提交後創建多個JSONP調用
$('#widget-form').submit(function() {
var jqxhr = $.ajax({
url: "/startanalyzerp?string=someexampletext",
crossDomain: true,
dataType: 'json'
})
.success(function(report) {
alert("success"+report.id);
})
.error(function() {
alert("error");
})
.complete(function() {
alert("complete");
});
什麼/ startanalyzerp確實是返回一個唯一的ID(整數),這是我需要傳遞給後續的URL。我有這個整數與report.id的值。
我想要做的是調用其他功能crossdomain。
/step2?id=report.id
/step3?id=report.id
/step4?id=report.id
我已經能夠做到這一點上使用相同的域:
$.each(endpoint_array, function(index,value) {
$.getJSON(value,function(report) {
});
凡endpoint_array是我想叫什麼端點爲了一個簡單的數組。
我很想在這方面得到任何幫助,我敢肯定它簡直就是我想念的東西。
如果我要使用#1,我將如何使用我正在檢查的內容更新客戶端?難道它只是一個隨機計時器嗎?如果是這樣,那麼當我等待一個請求完成時,我將如何更新進度條? – 2011-03-08 15:19:07
另外,如果我使用#2,它最終會成爲一些非常毛茸茸的和嵌套的東西嗎?沒有簡單的方法在$ .each循環中編寫它? – 2011-03-08 15:20:05
Ajax的要點是它是異步的(你可以讓它同步我相信,但我也相信,它不推薦,因爲我認爲它可以鎖定你的瀏覽器,當它處理) - 通過回調函數鏈接你的請求是一個確保代碼在ajax請求完成後執行的標準方法(這就是Success回調的要點)至於你的第一條評論 - 你將返回必要的數據作爲來自1個Ajax請求的響應(很可能是JSON),生成此數據的邏輯將在服務器端腳本中執行。 – Rob 2011-03-08 21:31:57