Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Работа с большими списками
RK152  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 2
Пользователь №: 29702
На форуме: 5 лет, 2 месяца, 18 дней
Карма:




Добрый день. Есть необходимость работать со списком подписчиков, списки могут достигать нескольких тысяч и десятков тысяч строк (реже, но могут). Естественно, такой объем вывести сразу в браузер, мягко говоря неразумно. Поэтому логично использовать постраничный вывод.
Загвоздка заключается в следующем, необходимо чтобы у пользователя была возможность выбрать всех в списке или убрать всех из списка, но не просто отметить всех, а еще потом погулять по списку и выкинуть или добавить кого-то по своему желанию. Хотелось бы найти наиболее простое решение этой задачи. Пока вижу только путь в лоб, писать id подписчиков в js-массив и отправлять на сервер, но массив может получиться совсем не маленький. Заранее спасибо за любую помощь.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5497
Пользователь №: 35718
На форуме: 4 года, 19 дней
Карма: 167




RK152, устанавливай флаг all так можешь выбрать всех, используй диапазоны от и до, плюс к этому отдельные id
например устанавливаешь all + исключающий диапазон (156-979) + конкретные id из этого диапазона над которымы тоже надо провести операцию.

диапазоны как и конкретные id могут быть исключающие и включающие


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
RK152  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 2
Пользователь №: 29702
На форуме: 5 лет, 2 месяца, 18 дней
Карма:




Valick, собственно идея была такой, но думал может есть еще какое-нибудь решение.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Bolik  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 352
Пользователь №: 35724
На форуме: 4 года, 19 дней
Карма: 4




посмотри https://github.com/paulopmx/Flexigrid . сам постоянно пользуюсь
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14978
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 3 дня
Карма: 444




RK152, гугли localStorage. Это то, что тебе требуется. Данные хранятся в браузере, их не надо никуда пересылать. Надо только организовать грамотную работу с этими данными.
Если совсем кратко, то ты работаешь с данными в браузере, добавляешь-удаляешь их из списков. Вне зависимости от того, сколько страниц у тебя было обработано. Даже более того, ты можешь организовать взаимосвязь между разными страницами в браузере, если юзер захочет одновременно работать с данными в разных страницах/вкладках. По окончании единоразово отправляешь весь список на сервер и там проводишь обработку, связанную с БД.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3376
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 12 дней
Карма: 170




sergeiss
Цитата
localStorage

По мне так нековайно в браузер за один раз отправлять "несколько десятков тысяч строк"
Во-первых, время ожидания загрузки
Во-вторых, а браузер не подвиснит, если так жестко с localStorage?

Вот еще че нагуглил:
Цитата
«5 мегабайт» — сколько места для хранения выдается по умолчанию. Это значение на удивление одинаково во всех браузерах, хотя и сформулировано не более как предложение в спецификации HTML5. Надо понимать, что вы храните строки, а не данные в исходном формате. Если вы храните много целых чисел или чисел с плавающей запятой, разница в представлении может оказаться большой. Каждая цифра в числе с плавающей запятой хранится в виде символа, а не в обычном представлении для таких чисел.


Особенно вот это вообще фуй-фуй-фуй
Цитата
Надо понимать, что вы храните строки, а не данные в исходном формате.


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5497
Пользователь №: 35718
На форуме: 4 года, 19 дней
Карма: 167




sergeiss, это дань моде?


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14978
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 3 дня
Карма: 444




Цитата (AllesKlar @ 29.10.2015 - 16:47)
По мне так нековайно в браузер за один раз отправлять "несколько десятков тысяч строк"

Я че-то не понял.... ТС что пишет?
Цитата (RK152 @ 29.10.2015 - 08:58)
необходимо чтобы у пользователя была возможность выбрать всех в списке или убрать всех из списка, но не просто отметить всех, а еще потом погулять по списку и выкинуть или добавить кого-то по своему желанию

Я предлагаю хранить ВСЕ данные о выбранных записях в браузере. Страницы так и так подгружаются в браузер. И надо брать только те данные для записи в localStorage, что были помечены. То есть, как я понял, далеко не все из списка.
Либо именно все без исключения smile.gif Тогда это вообще займет мало места.

Вобщем, если разумно подойти, то как раз количество пересылаемой информации будет небольшим. Если, например, отсылать эти же данные аяксом, при каждом чихе, то общий сетевой трафик будет куда как больше.

Цитата (AllesKlar @ 29.10.2015 - 16:47)
Надо понимать, что вы храните строки, а не данные в исходном формате.

JSON.stringify/parse в руки и "вперед и с песней".
Цитата (Valick @ 29.10.2015 - 17:27)
sergeiss, это дань моде?

Это современная технология, которой надо активно пользоваться. Подчеркну еще раз, что эта хреновина, кроме того что хранит данные, позволяет осуществлять связь между страницами одного и того же сайта, одновременно открытыми в браузере. При этом ни одна из страниц вообще не обязана знать о других. Это может быть полезно во многих случаях.


PS.
Цитата (AllesKlar @ 29.10.2015 - 16:47)
Во-вторых, а браузер не подвиснит, если так жестко с localStorage?

FireFox OS в мобиле легко обрабатывает 4 метра данных smile.gif Ну да, не мгновенно. Ну пару секунд, может быть.
Тут эти 4 метра - это очень крайний случай, просто тестировали работу "на пределе". Идея такая, что если размер записанных данных превышает допустимый, то тогда разбираем записанные данные (JSON.parse), удаляем ненужное, сохраняем всё заново (JSON.stringify). И я отвечаю - быстро это происходит. В максимуме там несколько тысяч записей, каждая запись немаленькая. А в норме их всего несколько штук, максимум несколько десятков. С этими количествами вообще мгновенно работает.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3376
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 12 дней
Карма: 170




sergeiss
Не, ну когда мало, то да удобно.
Особенно, если одно окно открывает другое, это другое чет делает, потом закрывается, а с результатами его работы должно работать первое окно.


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса