[英]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.