2010-10-27 49 views
0

在我開始發佈大量代碼之前,我想我可以更合理地解釋我的情況。我使用完全相同的方式填充頁面上的八個下拉列表,除了他們使用不同的存儲過程。那些返回很多行(44000左右,但每行只有大約5個字符的平均值)的行是不起作用的。使用Query Ajax的Web服務調用掛起

我正在使用Web服務調用來獲取數據。服務調用正在使用JQuery ajax調用。

直接在SSMS中運行的調用需要大約2秒的時間才能運行。當少量記錄返回時,一切正常。所以這不是代碼邏輯的問題,它與記錄數量有關。

我知道用這麼多的記錄填充任何東西並不是一個好主意,但是這個記錄數量只在少數情況下才會返回,我寧願不抓住並避免這種情況,我寧願程序正常運行。

這些電話掛斷有什麼原因嗎?我有

<httpRuntime executionTimeout="10000" maxRequestLength="3048576" /> 

在我看來,雖然它可能是緩慢的,或不是好主意,它應該仍然是可能的!

如果需要,我會發布我的代碼。

任何想法?

回答

0

它不清楚爲什麼請求掛起。你有什麼樣的錯誤信息?如果沒有,那麼使用Firebug來查看服務器的響應可能是值得的,Ajax調用應該出現在Console選項卡中(確保你已經設置了顯示XMLHttpRequests),你應該能夠深入到響應中來自那裏的失敗請求。

看起來你已經設置了ASP.NET超時。可能這裏有一個單獨的IIS超時,但我只是在這裏猜測。

我唯一要補充的是,如果您使用ASP.NET Web服務來獲取數據,那麼在處理大量響應時,將響應序列化爲XML可能會很重要,因此即使數據庫查詢運行在2秒內它可能需要更長的服務器通過Web服務返回數據。然後,瀏覽器需要花費大量的時間對其進行反序列化。