2010-11-04 103 views
0

我最近創建了一個應用程序,在應用程序啓動時將大量數據加載到對象中,並根據需要加載其他數據。例如,如果用戶請求目錄頁面,則會將所有頂級類別數據加載到類型爲Category的對象中。這將留在那裏供其他用戶使用(因此他們不需要將這些數據加載到對象中),並且如果管理員在同一個應用程序實例中登錄,則可以由管理員進行更改。我知道這不是最有效的解決方案,正如下面所指出的那樣,但它的工作原理和目前的頁面加載不會太長。如果大部分所需數據已經加載到對象中,則非常快速。它也適合業務需求 - 與其他技術(如Linq-to-SQL)不同。VB.Net應用程序 - 在應用程序啓動時向用戶顯示消息

我面臨的問題是,當一個頁面被請求時,需要大量的數據來顯示不同類型的對象。例如,當請求目錄頁面顯示可購買產品的信息時,它將加載所有產品和類別(因爲產品引用的是類別對象,而不僅僅是類別名稱)。

我想顯示一個消息加載符號,而所有這些數據被加載到對象,所以用戶知道它不只是在一個循環或任何東西。有沒有辦法做到這一點?如果需要,我可以使用JS/jQuery。

在此先感謝。

問候,

理查德

PS我就如何使之更有效率的工作 - 如使用哈希表或包含HashMap。然而,這需要時間,因爲有很多不同類型的項目(新聞,事件,目錄項目 - 範圍,集合,設計,範圍集合,集合設計,範圍集合設計和範圍設計 - 用戶,PageViews和列表繼續)。

+0

嗯看起來像我實際上已經找到了答案。當我早點搜索時,我一定錯過了這個鏈接。 http://www.codeproject.com/KB/aspnet/LoadingMsgWhilePageLoads.aspx。無論任何人有更好的解決方案 - 可能不需要JS,都會讓這個問題開放。 – ClarkeyBoy 2010-11-04 13:31:54

+1

你應該幾乎可以肯定地重新考慮你的設計方法 - 使用一些懶惰的加載技術,所以你只需要加載東西,因爲它們需要呈現給用戶。我不清楚這些數據如何與其他用戶共享,這是一個網絡應用程序,不是嗎?這部分聽起來有點冒險。但通常我認爲使用「請稍等」的東西應該侷限於等待服務器完成工作,而不是在頁面加載時加載大量可能不需要的數據(除非我們正在談論大型閃存事物或某種東西)。如果不需要馬上需要,您的應用程序不必加載太多。 – 2010-11-04 13:51:37

+0

我會做到這一點,它只是隨着時間的推移加載所請求的數據。然而目前這是必須要做的。我一直都知道,使用這種方法最終會出現問題。看了這些數據後,我認爲大部分數據實際上是頁面瀏覽量,每天增加50+,所以我可以簡單地存檔一週以上的頁面瀏覽量。這將解決這個網站的問題。不過,我正在考慮做一個比現在更有用的調查網站,但在這種情況下,過度的數據本身就是調查和問題。 – ClarkeyBoy 2010-11-04 14:57:03

回答

0

如果我錯了,請糾正我的錯誤,但我確實需要使用Javascript才能顯示「加載」圖像......單獨使用服務器端腳本通常需要在全部內容除非你想開始搞亂IFrames。

這是AJAX的工作。解決您的問題的一個常見解決方案是有一個顯示加載圖標的小頁面。該頁面有一些JavaScript,它會向服務器發出額外的HTTP請求以下載頁面的其餘部分。 JQuery有一個「$ .ajax」方法,旨在簡化這個過程。

我會建議看jQuery文檔中的.ajax方法的文檔。不幸的是,讓所有的腳本代碼都正確,這似乎是一個相當微妙的過程,需要一段時間才能完全掌握。

+0

感謝您的輸入。我認爲我們不希望網站完全無法訪問JavaScript關閉的5%(根據上次我在W3School查看的統計數據 - 在3月/ 4月)。我們很多客戶都是老年人商務男士/女士 - 他們往往是每天經營一家商店的人,而且技術性不強。非技術型的人往往會對安全性有點不安,因此可能會認爲他們所讀到的關於JS不安全的任何內容。必須有一些解決方案,當頁面首次發出請求時,頁面會觸發一些JS ... – ClarkeyBoy 2010-11-05 00:52:13

+0

嗯,再次查看我發佈在我的問題上的鏈接,似乎這些解決方案不適合這種情況 - 一種方法使用你所建議的技術,另一個我太累了,不能理解,但這肯定不簡單。我不知道是否有解決這個問題的方法,就像我希望的那樣簡單......在接下來的幾個星期的某個時間裏,它會繼續工作 - 目前忙於求職面試和應用程序...... – ClarkeyBoy 2010-11-05 00:57:16

相關問題