簡體   English   中英

原型的Ajax請求為什么要花這么長時間處理?

[英]Why does prototype's Ajax request take so long to process?

我正在使用prototype.js及其Ajax對象來實現一個interactiveve圖形小部件。 我為用戶想要的數據生成一個XML查詢,並使用Ajax.request將其發布到服務器,而Firefox似乎要花很多時間。 Firebug控制台似乎顯示POST在大約700毫秒內以200 OK結束,但是我安裝的onInteractive()處理程序(原型在readyState == 3時觸發)在下一個TWELVE SECONDS上觸發多次,然后我的onSuccess處理程序進行處理數據。

在我深入研究代碼之前,有人知道這里發生了什么嗎?

使用readyState 3時,XHR請求仍在處理中,因此可能多次觸發onInteractive處理程序。 它有什么作用? 為什么不能使用一個回調並在readyState === 4上觸發它? 此外,您可以嘗試使用Firebug的網絡面板(頂部的“網絡”選項卡)查看這段時間所花費的時間。

事實證明,發生的事情是Firebug在readystate為4時顯示POST完成,但是直到我的onSuccess處理程序完成以及兆字節的XML需要花費相當長的時間才報告整個事務完成。 切換到更緊湊的JSON表示形式而不是XML,或多或少減少了繁瑣的XML解析:

eval(responseText); doGraph();

伙計們,感謝您的評論,它們並不是我所需要的,但他們為我指明了正確的方向,並且該功能現在運行非常流暢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM