2017-04-12 150 views
0

我有一個應用程序發送一個AJAX請求來執行一些服務器端代碼。此代碼大約需要10分鐘才能執行並響應數據。防止長時間運行Ajax請求超時

在此操作完成之前,Web服務器和瀏覽器都已超時。 構建此請求以防止網關超時的最佳方式是什麼?

ajax請求響應一個json對象。這是處理這個問題的正確結構嗎?

Client executes ajax to start server-side processing 
| 
|___server working to process data (ETA 10 min) 
| | 
| server finishes and writes file with json object 
| 
Client recursively ajax requests some endpoint to check for completion 
| 
|___endpoint returns true 
    | 
    ajax request for server generated JSON file 
+1

你有什麼樣的代碼來表明你試圖做什麼?你看過像Service Bus(例如RabbitMQ)的東西嗎? – ACOMIT001

+0

如果你有'網關超時'你必須編輯服務器配置 –

+0

@Alex Slipknot我已經增加了服務器上的超時,但瀏覽器然後返回一個超時。 – Query

回答

0

最後我決定使用websockets。這似乎是,如果它是一個非常長的操作,你可以生成一個文件並檢查該文件,或者使用websockets製作一個實時應用程序。