氟塑料離心泵www.buybeng.com

          jquery教程http://www.software8.co/wzjs/jquery/

          早起的鳥兒有蟲吃---頁面模塊上移下移

          鳥兒和貓頭鷹,只是作息不一樣,但都能享受到一天中難得的安靜。我原來是一只“貓頭鷹”,現在是0:00休息的“貓頭鷹”又是6:30工作的“鳥兒”。這段時間心態最為平和~。

                   最近項目中有一個頁面某部分移動的需求,當點擊某模塊下移時其向下移動1,同時其下面的模塊上移。有兩種思路:

                   1、頁面排序信息插入數據庫時,保證嚴格有序插入,這樣就可以做到,當前順序總是小于其后順序,大于其前面順序,當下移時只要當前順序+1,其后順序-1就可以。當上移時只要當前順序-1,其前順序+1。但是這樣存在一個問題,如何做到嚴格有序(相差1升序)插入?第一反應是每次插入時都去獲取當前表最大順序,然后+1,但是細想如果并發將出現問題,比如:當A、B兩個線程同時添加數據時,都獲取到了最大順序seq,然后它們各自走自己的邏輯,最終數據將出現A、B的順序都為seq+1。當然你會說采用加鎖(全局鎖)的方式處理,這樣可以解決多線程問題,但是對于集群也就是多進程,這就是“死結”(事無絕對),因為無法共享內存。Hibernate的hilo策略就是一個例子,保證同一個數據庫主鍵不會重復,但是和我的需求有出入,其是不連續的。

                  2、在上述的分析中,考慮到mysql的主鍵是自增的,但也有可能不連續。只能暫時否定第一種思路,采用交換seq的方式來解決問題。具體當插入數據時,獲取主鍵id,然后將該id更新為當前記錄的seq。這樣就保證了升序。那么上移下移時,只要交換相鄰記錄的seq就可以完成操作。但是要保證每次交換都是從數據庫獲取最新seq,并防止頁面重復提交,否則會導致多線程問題。


                  這個需求,是頁面布局,應該盡量避免多人操作。比如A打開該頁面沒有操作,B打開該頁面移動了順序,當A再移動時可能無法達到其效果,這里我是不會判斷A當前位置的,所以A再次移動后可能跑到了末尾。

          posted on 2012-10-06 15:12 你爸是李剛 閱讀(1184) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2012年10月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          文章檔案

          技術網站

          行業網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          站長網 氟塑料離心泵 注塑機 液晶廣告機
          主站蜘蛛池模板: 沈丘县| 红河县| 丹阳市| 永修县| 邵东县| 蓬莱市| 建昌县| 河源市| 青州市| 锦屏县| 赫章县| 西乡县| 麻栗坡县| 台北市| 乌恰县| 闵行区| 通山县| 荣昌县| 平果县| 吉安市| 咸丰县| 阿尔山市| 土默特右旗| 嘉善县| 潢川县| 科尔| 内江市| 磴口县| 西畴县| 固阳县| 泗水县| 宁晋县| 临颍县| 曲靖市| 武安市| 东丽区| 嘉善县| 江山市| 天台县| 通许县| 德江县|