異步顯示狀態!現在需求明確沒思路!哥哥們指點一下


選擇一個二級菜單,進入頁面在文本框輸入一個值!程序根據這個去數據庫找到相關數據導出到excel!因為數據量大導出時間長!所以客戶想可以一邊導出一邊做別的事!但是再回來這個二級頁面可以看到excel是導出完了還是正在導出!
怎么實現?

8 个解决方案

#1


做個loading效果就好了

不要直接下載吧?而是生成文件后返回文件名,可以使用ajax,否則將查詢的表單提交到隱藏的iframe中,顯示loading效果,給iframe加onload事件隱藏loading效果

#2


引用 1 樓 showbo 的回復:
做個loading效果就好了

不要直接下載吧?而是生成文件后返回文件名,可以使用ajax,否則將查詢的表單提交到隱藏的iframe中,顯示loading效果,給iframe加onload事件隱藏loading效果


不是直接下載!只要在本地生成一個文件就可以了!在ajax使用之后有一個問題:用戶第一次從二級頁面進來導出excel,第二次進來就是新的ajax請求!!怎么實現第二次進來可以看到第一次進來時導出的excel狀態?

#3


該回復於2013-02-20 18:01:22被版主刪除

#4


該回復於2013-02-20 18:01:31被版主刪除

#5


不要通過a鏈接到頁面,這樣瀏覽器會轉向導致原來的信息丟失了

你可以點擊點擊菜單的時候彈出一個層,這個層放查詢條件,點擊啟動ajax就可以了,然后loading信息放在層里面的一個div容器里面

每點一次增加一個loading信息,同時將當前點擊時第幾次發送到動態頁,動態頁獲取此參數,以便動態頁執行完導出后輸出第幾次提供給ajax使用,ajax獲取返回的第幾次設置loading實現隱藏或者替換為其他內容,如生成完成之類的提示信息

#6


引用 樓主 oXiaoLong825227515 的回復:
選擇一個二級菜單,進入頁面在文本框輸入一個值!程序根據這個去數據庫找到相關數據導出到excel!因為數據量大導出時間長!所以客戶想可以一邊導出一邊做別的事!但是再回來這個二級頁面可以看到excel是導出完了還是正在導出!
怎么實現?
              
                  需求

后台對於導出是一個 線程 有一個id
前端有這個id  可以通過ajax查詢當前線程的運行狀態
就是這樣

#7


根據用戶名設置目錄,導出文件放到這個目錄下,下次登錄了從目錄讀;還可以多個文件列個表給用戶選擇下載。

考慮用戶會關閉連接而導出還沒完成,可以考慮用線程或者異步。

#8


引用 2 樓 oXiaoLong825227515 的回復:
不是直接下載!只要在本地生成一個文件就可以了!在ajax使用之后有一個問題:用戶第一次從二級頁面進來導出excel,第二次進來就是新的ajax請求!!怎么實現第二次進來可以看到第一次進來時導出的excel狀態?


我想,這是一個典型的 stateful request 的問題。可以用 cookie 記錄 state。 

用戶第一次從二級頁面進來導出excel后,服務器側要返回一個 cookie,值可以是id。 第二次進來時帶着 id-cookie,服務器就知道不是新的ajax請求,按id 找出對應的 excel task,檢查狀態,送回你想要的結果或狀態即可。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com