氟塑料離心泵www.buybeng.com

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

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

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

                   最近項(xiàng)目中有一個(gè)頁面某部分移動(dòng)的需求,當(dāng)點(diǎn)擊某模塊下移時(shí)其向下移動(dòng)1,同時(shí)其下面的模塊上移。有兩種思路:

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

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


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

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


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2012年10月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿

          隨筆檔案

          文章檔案

          技術(shù)網(wǎng)站

          行業(yè)網(wǎng)站

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          站長(zhǎng)網(wǎng) 氟塑料離心泵 注塑機(jī) 液晶廣告機(jī)
          主站蜘蛛池模板: 沾益县| 两当县| 桦川县| 繁昌县| 逊克县| 班玛县| 赞皇县| 娄底市| 和静县| 南康市| 闽侯县| 罗江县| 城步| 温泉县| 邢台县| 新巴尔虎右旗| 桓仁| 麦盖提县| 巴楚县| 宁河县| 共和县| 西乌| 徐闻县| 当阳市| 桐乡市| 巢湖市| 奉化市| 兴隆县| 衡阳市| 西峡县| 林芝县| 莆田市| 河源市| 镇坪县| 宁阳县| 英吉沙县| 包头市| 大悟县| 灵武市| 三都| 泽库县|