![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 313 Pomógł: 5 Dołączył: 22.03.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie,
mam skrycik do przeciągania wierszy w tabli, ale chciałbym zrobić aby dane się zapisywały. I tu pojawiają się schody, chciałbym to zrobić jak najbardziej optymalne: mój znajomy wymyślił 3 opcje: - w bazie danych wszystkie pozycje są numerowane po kolei od 1 do n. Przy zamianie pozycji np. z 5 na 2 wykonują się dwa zapytania – pierwsze ustawia order=2 do przesuwanej pozycji, a drugie zapytanie ustawia order=order+1 where order>=2 and order<5 minusem takiego rozwiązania jest to, że przy dodawaniu i usuwaniu trzeba pilnować, żeby kolejność się zawsze zgadzała i nie było pustych pozycji - przy sortowaniu przesyłane są nowe pozycje wszystkich rekordów (masa zapytań przy większej ilości rekordów) - w bazie danych do każdej nowej strony przydzielany jest kolejny, unikalny order, ale za każdym razem większy od poprzedniego (np. time()). Przy sortowaniu przesyłana jest informacja o id elementu przesyłanego i o ile pozycji w którą stronę się przesunął. Po stronie serwera przy sortowaniu wykonywane są zamiany sąsiadujących orderów. Ilość zapytań przy sortowaniu też dość znaczna, ale zależy od tego o ile pozycji przesuwa się stronę. Mnie natomiast nie satysfakcjonuje żadne rozwiązanie :-) Potrezbuje czegoś naprawdę optymalnego, aby nie zawalało serwera itp. Czy ktoś z kolegów programistów ma jakiś pomysł. Przykład takiego skryptu: http://www.isocra.com/2008/02/table-drag-a...-jquery-plugin/ Mój skrypt jest pisany od podstaw ale to tylko przykład aby wiadomo było o czym mówię :-) Czekam na każdy pomysł. Z góry dziękuje i pozdrawiam. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 10:07 |