2012-03-15 68 views
1

我有一個使用列表框的ASP Web應用程序。我的兩難境地是,列表框上的項目選擇變化會快速而頻繁地發生,所以做回傳以獲取我需要的信息最終會在客戶端變得非常緩慢。存儲/獲取信息客戶端的最佳方式

我的問題是: 在客戶端存儲數據的最佳方式是什麼?或者我應該只使用Postback或ajax?

需要存儲可能是在說我可以分割,但將需要爲所有在ListBox中的項目和項目的數量的信息,在列表框是每個項目一個字符串的信息未知。

請讓我知道你認爲什麼是獲得信息的最佳場所。

+0

我一直在考慮在ASP中使用「hiddenfields」並在頁面上創建它們。我可以使用這些值來放入一個信息字符串,我可以在JavaScript中分割和使用。你認爲這可能是一個好主意嗎? – Seige 2012-03-15 20:40:09

回答

2

這真的取決於你想要拿東西多遠。回傳將很快實施,但可能會證明是尷尬和緩慢。以某種方式使用ajax會大大加快速度,並且有很多方法可以使用。其程度將取決於您花費多少時間開發它而不是使用者/使用頻率的好處。

作爲一個具體的答案,我會建議AJAX中的數據,但無論你每次需要它還是一次加載時都會這樣做,將取決於應用程序/上下文。

+0

最好讓它全部在線,而不必返回到服務器。 – Seige 2012-03-15 20:37:32

+0

檢查答案爲最接近的答案,我正在尋找:) – Seige 2012-03-16 00:26:47

1

正如g.foley寫的,它是上下文特定的,不能沒有得到更多的細節回答。
我可以說我曾經持有一個JavaScript對象,我只在提交表單時發送,也許這種方法將適用於您。

+0

因此,您使用的JavaScript對象來保存所有的信息?有沒有辦法來存儲一個「全局」對象,不會清除一個函數完成時? – Seige 2012-03-15 20:38:53

+0

您可以使用HTML5 localStorage - 請參閱http://stackoverflow.com/questions/2010892/storing-objects-in-html5-localstorage中的一些討論 – Dror 2012-03-16 04:00:55

0

從問題的子上下文中,我將猜測在列表框選擇發生變化時,您並不真的需要來自服務器的信息?如果我是對的,那麼你可以將信息存儲在JavaScript變量中,然後在瀏覽器導航到另一個頁面/關閉之前(onBeforeUnload)通過AJAX將數據發送回服務器。這樣您將減少與服務器的持續通信。如果你最終使用這種方法,請注意,Chrome真的不喜歡卸載或beforeUnload上的異步AJAX調用。你需要讓你的電話同步。 IE也不喜歡它,但有不同的結果。你實際上可能會失去與服務器的連接,所以當下一頁從你的網站加載而不是同時使用4/6連接時,你將只有3/5可用。

如果我猜錯了,那麼你最好的選擇是當選擇改變時AJAX調用服務器。這將是獲取信息的最快方式(除WebSockets之外)。

+0

不幸的是,我需要獲取列表框中每個項目選擇的信息。否則,我將能夠擺脫在頁面之間使用ASP。 AJAX似乎是答案的方式。所以可能會看到如何。 – Seige 2012-03-15 20:33:02

相關問題