這是一個關於如何使Web應用程序能夠接收大量上傳數據,處理它並返回結果的一般設計問題,所有這些都沒有可怕的旋轉沙灘球5分鐘或可能的HTTP超時。AJAX:如何獲得Web應用程序的進度反饋,並避免長時間請求超時?
這裏的要求:
- 使Web表單,您可以上傳包含URL
- 當用戶點擊「提交」列表的CSV文件時,服務器獲取的文件,每個檢查看看它是否存在,以及頁面的標題標籤是什麼。
- 結果是包含URL下載的CSV文件,並且將結果HTTP代碼
- 輸入CSV可以非常大(> 100000行),所以取過程可能需要5-30分鐘。
到目前爲止,我的解決方案是在客戶端網站上有一個旋轉的JavaScript循環,每秒查詢服務器以確定作業的整體進度。這對我來說似乎很笨拙,我不願意接受這是最好的解決方案。我使用perl,模板工具包和jquery,但任何使用任何web技術的解決方案都是可以接受的。
編輯: 一個可能的解決方案的一個例子是這樣一個問題:How do I implement basic "Long Polling"?
您是否需要從服務器發出請求?爲什麼不讓客戶做到這一點? – Alxandr 2010-06-08 23:58:32
@alxandr,簡短的回答是我們進行這些http GET調用時所需的代理。客戶可能不被信任,以使其正確。 – 2010-06-09 00:14:44
一個類似的問題,與長查詢示例代碼 http://stackoverflow.com/questions/333664/simple-long-polling-example-code – 2010-08-25 23:20:41