2011-02-08 28 views
0

我正在mootools中開發應用程序。有一些代碼使用Request類向服務器發送請求。Mootools:爲什麼PHP中的每個flush()都不會反映在用戶端的mootools事件中

req = new Request({ 
async: false, method: 'post', 

someEvent: function(currentChunk) 
{ /* this event is fired everytime when server flushes the output using flush()*/ }, 

    onSuccess: function(html) { responseProcessor(); }, 
    onFailure: function() { alert('Page Loading Failed ....!!'); }, 
}); 

在服務器端,它執行我在哪裏使用沖洗沖洗 輸出緩衝器PHP文件()。 但在接收端,有一個onSuccess事件,它給了我一個變量中的整個responseData。

在每次單次服務器刷新輸出緩衝區後是否有任何事件被觸發?

回答

0

onSuccess回調將整個響應作爲參數傳遞。如果您進行了AJAX調用,則會直接返回該腳本,並返回所有將在瀏覽器上呈現的內容。使用mootools請求不能顯示輸出的進度(在刷新後不能調用事件)。我不知道是否有這樣的moo插件。

p.s. 我知道有一個jQuery插件,可以爲你(Does PHP flush work with jQuerys ajax?

1

有記載的API的進展情況做一些事情:http://mootools.net/docs/core/Request/Request

+0

我不認爲有進展,你可以做到這一點。顯示靜態資源的下載狀態會很有用。它只支持Gecko和WebKit(對我來說可以,但如果他需要IE的某些東西:D) – stecb 2011-02-08 12:31:20

0

我查了JQuery的AJAX的Http流插件從包含的鏈接steweb指出在他的噓聲中。

它所做的只是一個輪詢。您可以擴展MooTools.Core.Request類並創建一個MooTools.Core.Request.Polling類,它將添加一些選項,如輪詢。

您需要實現'request'事件(在發送請求之前觸發)來設置輪詢和完整事件以停止它。