2011-08-01 115 views
0

美好的一天,Web客戶端事件處理設計

這是更多的Web服務設計比我認爲的編程問題。我會盡力解釋我想達到的目標。在示例中,我在頁面上有3個組合框(例如大小,顏色,紋理),這些組合框相互依賴。我們只能輪流選擇它們(例如,1st-> 2nd-> 3rd)。選擇組合框的值後,下一個組合框被填充+啓用,我們也可以從中選擇。

我想出了幾個解決方案,我可以申請這個問題。

  1. 是當我們來到頁面,並且加載的JavaScript發送一個帖子,請求數據填充這些組合框。返回的響應是所有變體(JSON)的批處理數據,每個選擇客戶端都會通過JavaScript進行分析和處理。
  2. 頁面只加載第一個組合框,其餘的填充默認值。每次客戶選擇一個值時,適當的事件(導致post得到的ajax)被觸發以根據選擇填充/處理下一個組合框。

我自己我看到第一個很複雜,如果每個值都有很多選擇變化,批量值可能會非常大。第二個似乎是太多無用的請求到服務器,我認爲可能導致服務器過載。你如何看待這些解決方案?這個概念是否是okey?是否值得實施第一個解決方案,而不是第二個解決方案,即使它更難? 如果你在我的解釋中有些不明白的地方,請問我會盡力詳細解釋。

回答

2

我同意預取所有東西不是一個可擴展的解決方案,在某些時候可能會有不合理的數據量來提取。

遞增地提取數據的第二種解決方案似乎在我的經驗中最爲常見。我想通過「無用的請求」,你意味着如果用戶回溯並重新選擇,你會反覆提取相同的數據。

爲了解決我使用各種緩存技術來優化該行爲的問題。

我會說,一連串的下拉框可能不是最好的用戶界面。一些框架(例如dojo)具有樹部件,就像您將用於導航目錄結構的部件一樣。我想你可能會發現這種方法看起來更好,並且可以擴展到三層以上的層次。

+0

+1 - 儘管爲了防止多重下拉,我認爲這種工作方式可能很多用戶都很熟悉;聽聽可用性專家的想法很有意思。 –

+0

謝謝你的回答! – faya