Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ajax] Przeciąganie wierszy w tabeli
mefjiu
post
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.
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
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ę.

To zrób grupowanie zapytań. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Masz tu dwa wyjścia: zapisujesz wszystkie operacje do tablicy i po kliknięciu na zapisz dane są utrwalane (zmiany lecą w jednej porcji). Drugie, to przesłanie nowej pozycji wszystkich rekordów (jeśli zrobisz wiele zmian, to zostanie przesłane mniej danych).

Hybrydą byłoby przesyłanie a'la drugie rozwiązanie ze sprawdzaniem, czy rekord był faktycznie zmodyfikowany.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 05:22