我有一個基於Zend框架的web應用程序除了主頁面請求之外,還向服務器生成3個獨立的AJAX請求。這對Web服務器造成了顯着的性能影響。合併jQuery AJAX請求Zend框架
我想嘗試通過將所有3個AJAX請求合併成一個請求,這個請求可以被我的Zend Framework應用程序接收並由動作堆棧作爲3個獨立請求處理。
歡迎任何有關工具/技術和陷阱的建議。
我有一個基於Zend框架的web應用程序除了主頁面請求之外,還向服務器生成3個獨立的AJAX請求。這對Web服務器造成了顯着的性能影響。合併jQuery AJAX請求Zend框架
我想嘗試通過將所有3個AJAX請求合併成一個請求,這個請求可以被我的Zend Framework應用程序接收並由動作堆棧作爲3個獨立請求處理。
歡迎任何有關工具/技術和陷阱的建議。
從我的頭頂:
這將是somethi像一個微型作業堆棧/隊列的Ajax請求。
我接受了Markus的建議並創建了2個jQuery插件,一個用於排隊請求,另一個用於發佈它們。
Zend Framework應用程序接收請求並遍歷每個請求,並將任何返回數據添加到通用響應對象,該對象被JSON編碼並返回給客戶端。
var count = 0;
var requests = new Array();
// Add AJAX requests to the queue
(function($){$.fn.addAjaxRequest=function(callback, ajaxArgs, initialArgs) {
requests[count] = [callback, ajaxArgs, initialArgs];
count++;
}
})
(jQuery);
// Send the queued AJAX requests to MVC
(function($){$.fn.postAjaxRequests=function(host) {
var response = null;
var url = 'http://' + host + '/ajax/process-ajax-requests';
$.ajax({
type: 'POST',
url: url,
dataType: 'json',
async: false,
data : ({data : requests}),
success: function(data) {
response = data;
}
});
return response;
}
})
(jQuery);
我正在使用Zend Framework視圖助手來保持預期的AJAX請求的數量的計數。以前在jQuery中調用$ .GET或$ .POST的代碼時,我現在調用我自己的jQuery插件,它將每個請求保存在堆棧中(js數組)。一旦堆棧中的請求數量與視圖幫助程序中指定的數量相匹配,我就向我的Zend Framework Ajax控制器發出一個請求,它會依次解析每個請求。現在的問題是,這些AJAX調用中有幾個需要將數據發送回去。將匹配數據傳遞給相關請求的最佳方式是什麼? – Richard
同樣,您應該將它們發送回捆綁並標記在數組中,然後您的插件將對數組進行排序並進一步發送響應。你的插件基本上就像請求路由器一樣工作。因此,每次發送給插件的請求都會得到一個ID,在大響應數組中,您可以通過ID找到子響應,並根據需要進行處理。 – markus