我正在爲一個客戶,誰問我準備爲它的網站模塊,具有以下特性(使用Yii寫的)的有效分頁:減少結果
- 這表明從mysql_result 3個元素,從從offset = 0開始。
- 用戶可以點擊其中的任意一個將其標記爲「已讀」。這使得所需的物品消失並出現以下物品。也就是說,如果您正在顯示項目
3 4 5
並且您單擊4
,那麼該項目將消失並顯示編號6
,這意味着結果將爲3 5 6
。 - 顯示的元素是局部視圖,「刪除」項目的按鈕是每個局部視圖內的控件。
- 用戶可以通過使用一些
<<
和>>
箭頭來反覆查看結果的項目列表。 - 客戶給我的一個選項是顯示頁面列表(1 | 2 | 3 | 4 ...等等),但是刪除項目意味着未來某個時候頁面數量會減少,如果金額相當大,我會需要更靈活的東西,例如最多隻顯示當前頁和其他4頁。另一種選擇是保持< <和>>箭頭。
- 我試圖說服客戶,分頁和一個「活動列表」是一個非常糟糕的主意,但他拒絕了這個想法限制可視化只有前3項(記住,最終你會刪除它們因此將能夠看到以下項目)。
我正在開發它使用Yii,MySQL和jQuery,我不能使用CPagination,因爲這個生活清單。我沒有問代碼,只是一些指導原則,因爲我第三次嘗試這樣做時迷路了。
有關係統的一些基礎知識:
- 我得到了它加載第3項該模塊的控制器。
- 我在這個控制器中獲取了一些操作,它獲取頁面內的下一個項目(可能與當前對象不一樣,但我的問題之一在於此)和整個頁面。
- 每個項目都能夠將自己標記爲「已讀」,這會在下次獲取某些結果時使項目不顯示。
- 每隔1秒我檢查一下已標記爲已讀的項目,從DOM中刪除並使用第二個項目符號中定義的操作附加一些新項目。
- 每次用戶點擊
<<
或>>
時,我都會重新載入上一頁/下一頁(這顯然不是問題,如果您在最後一頁並且沒有更多項目要添加,您只需保留但是如果你清空頁面,我沒有任何方法可以檢測到這個頁面,並且回滾一頁)。
正如您所看到的,如果沒有分頁按鈕,這種頭痛會更容易,但客戶端要求我放置它們。你會做什麼?在此先感謝
編輯:客戶決定以隨機的風味得到的結果。沒有更多的分頁,所以問題已經消失。@thaddeusmt的答案可能對我沒有太大的幫助,但我認爲它是有效的,因爲它可能對其他有類似問題的人非常有用。乾杯
Kor,你剛剛從yii專家那裏得到了Stack Overflow的答案。心懷感激!非常感激。 ;) – 2011-06-07 21:07:43
哈哈感謝k,這麼好評!不想讓這個去我的頭上:p – thaddeusmt 2011-06-07 21:50:48
哇,好的,謝謝,我會在一分鐘內試一試。然而,只有一種想法可能不明確; actionMarkRead()在每個模塊中,從每個模塊的特定JavaScript調用(是的,這不是我能做的最好的),每次模塊加載時加載它。不過,我會兩次檢查CGridView,因爲它似乎是我最好的選擇。我會在一秒鐘之內告訴你一件事! – Korcholis 2011-06-08 07:52:51