我正在研究某種在線多用戶編輯器/ coop界面,這將在一個頁面生命週期內執行很多(如,數千個)ajax請求。Ajax密集頁面:重複使用相同的XMLHttpRequest對象或每次創建一個新對象?
什麼是最好的:(在穩定性,兼容性方面的「最佳」,避免麻煩)
創建一個XMLHttpRequest對象和重用,對於每一個HTTP請求
創建一個新的XMLHttpRequest對象用於每個HTTP請求
管理XMLHttpRequest對象的動態「池」,在啓動HTTP請求時創建一個新池,並且不存在現有對象,並標記先前創建的o bject爲「可用」時,它的最後一個請求已成功完成
我覺得1是不是一種選擇,導致一些請求可能會失敗,我可能會發起新的請求,而前一個還沒有完成,等等。
至於2,我猜這是內存泄漏,或者可能導致瘋狂的內存/資源使用情況。或者,我可以在請求完成時以某種方式關閉或刪除一個對象? (where/how?)還是JS垃圾收集器正確地處理了這個問題?
從來沒有嘗試過3之前,但它感覺像兩全其美。或者是一種不必要的方法,或者我仍然缺少潛在的問題?到底什麼時候我可以假設一個請求被完成(因此,這個對象可用於一個新的請求),是什麼時候收到readyState 4和http狀態200? (也就是說,我可以肯定,在此之後不會有更多更新或回調?)
只是想知道你計劃使用什麼樣的服務器和你連接到什麼網絡,因爲這個腳本,如果你是成千上萬的請求是正確的,是極其資源使用 – gabeio
我有一個殘酷的專用服務器可用於此。但是數千個請求只能在幾個小時內完成,而不是每秒鐘都有一個請求。更像是每分鐘幾次,但它可能會持續多個小時。 –
很好,如果你需要更快的速度,比如每秒一個請求,我會建議使用flash或者一個java小應用程序。如果你需要更快的速度,我會建議使用flash或者一個java applet – gabeio